我正在尝试在matplotlib中使用barh绘制此数据帧。
SAMPLE DF:
genre tracks_sold percentage
0 Rock 561 53.377735
1 Alternative & Punk 130 12.369172
2 Metal 124 11.798287
3 R&B/Soul 53 5.042816
4 Blues 36 3.425309
genre_sold_usa.plot.barh()
我正在尝试使该图在视觉上更具参考性。
我想以类似的方式绘制情节,但在视觉上更具吸引力:
请指导我使用其他方法使它更具视觉吸引力。
答案 0 :(得分:1)
给出df
作为DataFrame,我只是想重现您提供的示例。我认为,旋转y
标签更有意义。 “视觉上吸引人”是一个主观问题。
fig = plt.figure(figsize=(10, 6))
ax = df.plot.barh(y='tracks_sold', x='genre', color='mediumseagreen', ec='k', lw=1)
plt.xlim(0, 630)
plt.yticks(rotation=30)
plt.ylabel('')
plt.title('Top Selling Genres in the USA')
ax.legend_.remove()
# Way 1 of putting percentage values
for i in range(len(df)):
ax.text(tracks_sold[i] + 5, 0.98*i, str(int(percentage[i])) + '%', color='black', fontweight='bold')
# Way 2 of putting percentage values
# for i, p in enumerate(ax.patches):
# ax.annotate(str(int(percentage[i])) + '%', (p.get_width() * 1.02, i))