Pandas 熊猫的蜱虫频率发生了变化;。酒吧';绘图,但弄乱了实际的条形图

Pandas 熊猫的蜱虫频率发生了变化;。酒吧';绘图,但弄乱了实际的条形图,pandas,matplotlib,plot,visualization,Pandas,Matplotlib,Plot,Visualization,你的自我隔离情况如何 当我在Python中钻研可视化时,挖掘岩石。然而,最近我遇到了一个问题 我发现Pandas中的.plot.bar()具有不常见的x轴格式(这在某种程度上证实了我在询问之前阅读过)。我有每月频率的价格数据,所以我应用了一个修复程序,在条形图中只显示每年的节拍: fig, ax = plt.subplots() ax.bar(btc_returns.index, btc_returns) ax.xaxis.set_major_locator(mdates.YearLocato

你的自我隔离情况如何

当我在Python中钻研可视化时,挖掘岩石。然而,最近我遇到了一个问题

我发现Pandas中的
.plot.bar()
具有不常见的x轴格式(这在某种程度上证实了我在询问之前阅读过)。我有每月频率的价格数据,所以我应用了一个修复程序,在条形图中只显示每年的节拍:

fig, ax = plt.subplots()
ax.bar(btc_returns.index, btc_returns)

ax.xaxis.set_major_locator(mdates.YearLocator())
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y'))
其中,
btc_返回的
是索引中带有日期时间的序列对象

我得到的结果很奇怪。以下是我预期的与最终结果的截图

我试图找到解决这个问题的办法,但没有成功。你们能帮我一下吗?谢谢一如既往,欢迎批评:)

  • 使用来自的股票价值数据
  • 从技术上讲,您可以在开始时执行
    pd.to_datetime(btc.Date).dt.Date
    ,但是
    resample
    不起作用,这就是为什么
    btc_monthly.index.Date
    作为第二步执行的原因
  • 重采样可以在不同时期进行(例如
    2M
    =每两个月一次)
加载并转换数据
将熊猫作为pd导入
将matplotlib.pyplot作为plt导入
#加载数据
btc=pd.read\U csv(“数据/btc-USD.csv”)
#日期到日期时间
btc.Date=pd.to_日期时间(btc.Date)
#计算每日收益率%
btc['return']=((btc.Close-btc.Close.shift(1))/btc.Close.shift(1))*100
#每月重新取样并按总和汇总
btc_monthly=btc.重采样('M',在('Date').sum()
#将索引设置为仅日期(无时间)
btc_monthly.index=btc_monthly.index.date
情节
btc\u每月.绘图(y='return',kind='bar',figsize=(15,8))
plt.show()

双月刊
btc\u monthly=btc.resample('2M',on='Date').sum()#而不是'M'
btc_monthly.index=btc_monthly.index.date
btc_monthly.plot(y='return',kind='bar',figsize=(15,8),legend=False)
plt.title('比特币美元:双月%收益')
plt.ylabel(“%return”)
plt.xlabel(“日期”)
plt.show()

我的解决方案如下:

fig, ax = plt.subplots(figsize=(15,7))
ax.bar(btc_returns.index, btc_returns.returns.values, width = 1)
其中,
btc\u returns
是返回btc的数据帧。我认为
.values
可以使条形图正确读取日期时间输入。对于“缺少”的条-它们的分辨率太小,所以我将
宽度设置为“1”

结果如下:


对于
bar
图表,
xticks
range(len(data))
带有适当的标签,而不是实际的数据。@QuangHoang你能像我5岁那样解释它吗?我没有CS背景,抱歉可能会有帮助。@TrentonMcKinney你是最好的,fam!谢谢你前几天帮我发照片。很高兴链接对我有帮助,欢迎你。