python - Y 轴标签不像seaborn 中的条形图那样排序

标签 python jupyter-notebook seaborn visualization

我有一个名为general_stats的数据框,其中包含有关 YouTube channel 的信息,例如标题、订阅者数量等。 我想使用seaborn 在条形图中绘制 channel 名称与订阅者数量的关系。但是当我尝试按子数量对条形进行排序时,它们会被排序,但 y 轴标签保持不变。

这是订购前的:

fprop = fm.FontProperties(fname='FontsKR/NotoSansCJKtc-Regular.otf')

names = general_stats['Channel_name']
subs = general_stats['Subscribers_Count']

fig = sns.barplot(x=subs, y=names, palette ='Blues_r').set_yticklabels(labels = 
names,fontproperties=fprop, fontsize=12)
fig ;

这给了我这个结果:

before

这是订购后的:

fprop = fm.FontProperties(fname='FontsKR/NotoSansCJKtc-Regular.otf')

names = general_stats['Channel_name']
subs = general_stats['Subscribers_Count']

fig = sns.barplot(x=subs, y=names, palette ='Blues_r', order= 
general_stats.sort_values('Subscribers_Count', 
ascending=False).Channel_name).set_yticklabels(labels = names,fontproperties=fprop, 
fontsize=12)
fig;

它给了我这个情节:

after

如您所见,条形已排序,但 y 轴标签保持不变。我怎样才能在不订购数据框本身的情况下用条形图来订购它们? 我必须自己设置 ytick 标签,这样我才能显示中文/韩文/日文字符。也许是因为我在订购条形后设置了 yticklabels ?我怎样才能绕过这个,因为我确实需要我正在使用的字体!

最佳答案

是的,发生这种情况是因为您在对条形进行排序后设置了 y 刻度标签,因此您还需要在那里使用排序后的名称。试试这个:

fprop = fm.FontProperties(fname='FontsKR/NotoSansCJKtc-Regular.otf')

names = general_stats['Channel_name']
subs = general_stats['Subscribers_Count']

names_ordered = general_stats.sort_values('Subscribers_Count', 
                                          ascending=False).Channel_name

ax = sns.barplot(x=subs, y=names, palette='Blues_r', 
                 order=names_ordered)
ax.set_yticklabels(labels=names_ordered, fontproperties=fprop, fontsize=12)  

关于python - Y 轴标签不像seaborn 中的条形图那样排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72238106/

相关文章:

python - pip install from requirements 工作但无法通过 ansible 找到相同的库

widget - 如何使用 IPython Widgets 让一个参数的可能值依赖于另一个参数?

python - 当刻度标签位于顶部时,Seaborn 热图 xticklabels 水平对齐不起作用

python - Pinguin rcorr 热图

python - 标签页中的 ScrollView kivy/KivyMD

Python Pandas <...上的pandas.core.groupby.DataFrameGroupBy对象>

hive - 如何使用 jupyter notebook 在 pyspark 中的 Hive 上使用 %sql Magic string 启用 spark SQL

python - 是否可以用每组中的观察次数来注释 seaborn fiddle 图?

python - 使用 python csv 模块,为什么创建相同值的列表会加快创建行列表的速度?

python - 可视化文本分类