这可能是一个非常愚蠢的问题,但是当使用.plot()绘制Pandas DataFrame时,它非常快速,并生成一个具有适当索引的图形。当我试图将它更改为条形图时,它似乎失去了所有的格式,索引就变得疯狂了。为什么是这种情况?有没有一种简单的方法只绘制与线条图格式相同的条形图?
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
df = pd.DataFrame()
df['Date'] = pd.date_range(start='01/01/2012', end='31/12/2018')
df['Value'] = np.random.randint(low=5, high=100, size=len(df))
df.set_index('Date', inplace=True)
df.plot()
plt.show()
df.plot(kind='bar')
plt.show()


更新:比较而言,如果我获取数据并将其放入Excel中,则创建一个线条图和一个条形(“列”)图,它将立即转换该绘图,并保留线条图的轴标签。如果我试图用Python生成许多(数千)条形图,并使用多年的每日数据,这需要很长的时间。是否有一种在Python中进行Excel转换的等效方法?

发布于 2019-06-21 15:07:10
熊猫酒吧情节在性质上是明确的;也就是说,每个酒吧都是一个单独的类别,而这些酒吧有自己的标签。绘制数字条形图(以同样的方式绘制线图)目前在熊猫中是不可能的。
相反,如果输入的数据是数字或日期,matplotlib bar图是数字的。所以
plt.bar(df.index, df["Value"])产生

但是请注意,由于数据中有2557个数据点,分布在几百个像素上,所以并不是所有的条形图都是实际绘制的。相反地,如果你想要显示每个条形图,它需要在最后的图像中有一个像素宽。这意味着每边有5%的边距,你的图形需要超过2800像素宽,或者矢量格式。
因此,与其显示每日数据,不如先将数据汇总为月度或季度数据。
发布于 2019-06-21 13:48:06
默认的.plot()将所有数据点与直线连接起来,并生成一个线条图。
另一方面,.plot(kind='bar')将每个数据点绘制为一个离散条。要在x轴上获得正确的格式设置,您必须修改勾标后的绘图。
https://stackoverflow.com/questions/56704699
复制相似问题