【发布时间】:2019-12-11 00:05:18
【问题描述】:
我有一个 pandas 数据框,它有 16 列对应的年份(2000 年到 2015 年)和 12 行对应每个月的值。
我正在尝试使用以下代码在同一个图中绘制一个箱线图和一条具有 2015 年值的线以进行比较:
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_excel('hidro_ne.xlsx')
fig, ax = plt.subplots()
ax1 = df[2015].plot(ax=ax, linewidth=2, legend='2015',color='red')
df.T.plot.box(yticks=range(0, 100, 5), ax=ax1)
plt.show()
在 2015 年的专栏中,我有从 1 月到 9 月的数据,但我得到了一个从 yline 到 9 月的移位线图:
事实上,该行应该从“Jan”开始,一直到“set”,而不是在“ago”结束:
>>> df[2015]
Jan 16.41
Fev 18.34
Mar 23.52
Abr 27.40
Mai 26.96
Jun 25.34
Jul 22.49
Ago 18.38
Set 13.87
Out NaN
Nov NaN
Dez NaN
我在 Windows 8.1 上使用 Python 3.4.3、pandas 1.7.0 运行脚本。
我该如何解决?
【问题讨论】:
-
如果您没有数据,您希望该行在这几个月中显示什么值?鉴于输入数据,该图准确地显示了它应该显示的内容
-
我认为 df.plot 从 0 开始标记,在 1 开始箱线图(这很烦人,尤其是当索引相同时)。尝试使用
ax.plot(list(range(1,13)), df[2015].values)代替线图。 -
vmg,我没有“Out”、“Nov”和“Dez”的值,但我有“Set”的值,它没有显示在情节上。事实上它已经转移了。