a12*_*234 3 tuples matplotlib bar-chart pandas
我有以下几点:
indyes = tuple(yesSeries.index)
indno = tuple(nodSeries.index)
width = 3
p1 = plt.bar(indyes, yesSeries, label="Example one", color='SkyBlue')
p2 = plt.bar(indno, nodSeries, label="Example two", color='IndianRed')
plt.legend()
plt.xlabel('bar number')
plt.ylabel('bar height')
plt.title('Epic Graph\nAnother Line! Whoa')
plt.show()
Run Code Online (Sandbox Code Playgroud)
当我尝试添加+ width到第二个条形图时,indno + width它们没有堆叠,而是并排,我收到以下错误:TypeError: can only concatenate tuple (not "int") to tuple。
我已将 Pandas 系列设置为一个元组以提取日期和计数信息。
如何获得两个平行的垂直条形图?
Ced*_*olo 13
我相信您正在寻找的东西可以通过DataFrame从您创建一个Series然后使用该plot.bar功能来完成。
在下面的代码中,我生成数据并根据需要创建图形。
import matplotlib.pyplot as plt
import pandas as pd
times = pd.date_range('2018-09-01', periods=7, freq='5D')
yesSeries = pd.Series([1800,2000,3000,1000,2000,1500,1700], index=times)
nodSeries = pd.Series([200,500,700,600,300,50,0], index=times)
df = pd.DataFrame({"Example one":yesSeries,"Example two":nodSeries})
ax = df.plot.bar(color=["SkyBlue","IndianRed"], rot=0, title="Epic Graph\nAnother Line! Whoa")
ax.set_xlabel("date")
ax.set_ylabel("counts")
ax.xaxis.set_major_formatter(plt.FixedFormatter(times.strftime("%b %d %Y")))
plt.show()
Run Code Online (Sandbox Code Playgroud)
这导致下图。
如果日期看起来很混乱,您可以在plt.show()代码前插入以下行:
plt.gcf().autofmt_xdate()
Run Code Online (Sandbox Code Playgroud)
这将导致下图。
| 归档时间: |
|
| 查看次数: |
5534 次 |
| 最近记录: |