假设我们有一个df,其中一列定义为一个类别:
import pandas as pd
df = pd.DataFrame({'Color': ['Yellow', 'Blue', 'Red', 'Red']}, dtype='category') # data type is category
现在假设我们要在移除其中一个分类水平的同时绘制这些数据:
# Exclude Yellow, save in new df
df2 = df.loc[df.Color != 'Yellow']
# Plot
df2.value_counts().plot(kind='bar')
输出:
虽然未显示黄色条,但黄色记号标签仍然可见。
我的问题:我们怎么才能把黄从阴谋中彻底除掉
我怀疑这个问题是由于数据类型是category。但是我不想转换数据类型。类型category有时候是有用的,例如,重新排序级别或其他操作。
对我来说,理想的解决方案也适用于seaborn,我发现了一个类似的问题:
# Remake a df based on the above and plot with seaborn
df2=pd.DataFrame(df2.value_counts()).reset_index()
import seaborn as sns
from matplotlib import pyplot as plt
sns.catplot(data=df2, x=0, y='Color', kind='bar')
plt.show()
输出:
Dani Mesejo的答案是有效的,但我相信只能用直方图。而且我需要条形图本身。
2条答案
按热度按时间vkc1a9a21#
您可以将分类值转换为图的字符串(非就地),您的数据类型在df2中将保持不变:
或者你可以用hist
hgqdbh6s2#
使用
seaborn.histplot
,您可以执行以下操作:别忘了海运进口