我正在尝试绘制数据框:
import pandas as pd
dict_object = {'Feats':['AAA_set_a_type_4', 'BBBB_set_B_type_5', 'CCCCC_set_c_Type_6'], 'importance':[3,4,5] }
df = pd.DataFrame(dict_object )
ax = df .plot( kind="barh")
ax.invert_yaxis()
for i, x in enumerate(df.Feats):
ax.text(0, i + .5, x, ha='left', fontsize='large')
然而,文字与条形重叠。 我该如何解决这个问题?
另外,我如何按降序对eh条进行排序?
由于
答案 0 :(得分:0)
您可以稍微更改底部定位,从i + .5
到i + .4
,将fontsize
设置为medium
,最后使用{{df
排序ascending=False
1}}。
(所有文字属性的Documentation)
这是更新后的代码:
import matplotlib.pyplot as plt
import pandas as pd
dict_object = {'Feats':['AAA_set_a_type_4', 'BBBB_set_B_type_5', 'CCCCC_set_c_Type_6'], 'importance':[3,4,5] }
df = pd.DataFrame(dict_object ).sort(ascending=False)
ax = df .plot( kind="barh")
ax.invert_yaxis()
for i, x in enumerate(df.Feats):
ax.text(0, i + .4, x, ha='left', fontsize='medium')
plt.show()
这就是它的样子:
答案 1 :(得分:-1)
如果要排序,只需使用sort_values(by)函数:
dict_object = {'Feats':['AAA_set_a_type_4', 'BBBB_set_B_type_5', 'CCCCC_set_c_Type_6'], 'importance':[3,4,5] }
df = pd.DataFrame(dict_object )
ax = df .plot( kind="barh")
ax.invert_yaxis()
df.sort_values("importance")
for i, x in enumerate(df.Feats):
ax.text(0, i + .5, x, ha='left', fontsize='large')