Matplotlib 绘制 2D 形状而不是 1D 线 [重复]
Posted
技术标签:
【中文标题】Matplotlib 绘制 2D 形状而不是 1D 线 [重复]【英文标题】:Matplotlib plots 2D shapes instead of 1D lines [duplicate] 【发布时间】:2021-10-24 04:54:52 【问题描述】:我正在尝试绘制国债收益率曲线。我在以下熊猫数据框中获得了数据:
所以,基本上我想根据索引绘制数据框的 3 列,并希望有 3 行。但是当我尝试这样做时,我得到的不是线条,而是彼此重叠的 2D 形状,如下所示:
我尝试使用 Pandas 中的 df.plot()
和常用的 plt.plot()
命令,但它们给出了相同的结果。如何从这些 2D 形状制作 1D 线?
【问题讨论】:
代码在哪里。 【参考方案1】:在你展示的情节中,那些实际上是线条,但它们彼此如此接近,以至于似乎有一个彩色区域。
虚假数据框创建:
df = pd.DataFrame('date': pd.date_range(start = '1990-01-02', end = '2020-12-31', freq = 'D'))
df['DGS1'] = 10*np.random.random(len(df))
df['DGS10'] = 10*np.random.random(len(df))
df['DGS5'] = 10*np.random.random(len(df))
df = df.set_index('date')
绘图:
df.plot()
plt.show()
放大休闲区域:
plt.xlim('2003-03-07', '2003-08-04')
再次放大:
plt.xlim('2003-04-07', '2003-04-22')
如果您可以放大某些感兴趣的区域,您可以保持数据框不变,否则您可以使用pandas.DataFrame.resample
对数据重新采样。请注意,此操作会更改您的原始数据,因此您必须小心解释您将获得的图。
一个工作示例可能是以 1 个月的频率重新采样数据帧并计算每个月的平均值:
df = df.resample('1M').mean()
【讨论】:
以上是关于Matplotlib 绘制 2D 形状而不是 1D 线 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
在 OpenGL 中使用箭头键移动一些形状 - 它缩小而不是移动