【发布时间】:2019-07-30 02:38:24
【问题描述】:
我想在 python 中从标称值创建一个水平条形图,但是我无法自己解决它,而且我在 StackOverflow 上没有找到任何好的示例。
我想看看从 1983 年到 2019 年两个季节(持续时间、开始、结束)的年份轮换变化。
我有这个数据框,我想过这样的事情:
DAY SEASON YEAR DAY2
1983-12-27 Wet_Season 1983 27 Dec
1983-12-28 Wet_Season 1983 28 Dec
1983-12-29 Wet_Season 1983 29 Dec
.... .... ..... ....
2019-04-28 Dry_Season 2019 28 Apr
p = pd.pivot_table(RSDF9, index='YEAR', columns='DAY2', values='SEASON', aggfunc='first')
sns.set_style("white")
fig2, ax2 = p.plot(kind='barh', width=0.85, figsize=(20, 10))
for ax2 in fig2.axes:
mpl.pyplot.sca(ax2)
plt.xticks(rotation=45)
loc = plticker.MultipleLocator(base=18)
ax2.xaxis.set_major_locator(loc)
ax2.legend(ncol=2, loc="upper right", frameon=True)
我希望每年都有水平条形图来可视化旱季和雨季的持续时间,但是我不能使用名义数据。
TypeError: Empty 'DataFrame': no numeric data to plot
【问题讨论】:
-
正确,因此您需要将字符串转换为日期。
-
这是唯一的错误吗?季节列的字符串类型呢……没关系?
-
如果你想使用 pandas (
df.plot) 也可能是个问题。 Matplotlib (plt.plot(x,y)) 可以解决这个问题,尽管您可能希望将其更改为数值以便能够对其进行排序(干比湿高还是低?)。 -
好吧,我会用新的知识尝试一下
标签: python pandas matplotlib seaborn