【发布时间】:2018-07-28 12:34:53
【问题描述】:
我正在尝试制作一系列条形图,每个城市一个图表,每个图表显示 Y 轴上的计数(范围 70 - 210),我希望在 X 轴上有 21 个条形图, 每个工作日和时隙组合一个 (7x3=21)。这是数据
import pandas as pd
import matplotlib.pyplot as plt
data = [
['CITY','DAY','TIME_BIN', 'COUNT'],
['PHOENIX', "Friday", 1, 70],
['PHOENIX', "Thursday", 2, 80],
['PHOENIX', "Wednesday", 3, 90],
['ATLANTA', "Sunday", 1, 130],
['ATLANTA', "Monday", 2, 150],
['ATLANTA', "Tuesday", 3, 160],
['CHICAGO', "Saturday", 1, 180],
['CHICAGO', "Friday", 2, 200],
['CHICAGO', "Friday", 3, 210],
]
df = pd.DataFrame(data[1:],columns=data[0])
print(df)
CITY DAY TIME_BIN COUNT
0 PHOENIX Friday 1 70
1 PHOENIX Thursday 2 80
2 PHOENIX Wednesday 3 90
3 ATLANTA Sunday 1 130
4 ATLANTA Monday 2 150
5 ATLANTA Tuesday 3 160
6 CHICAGO Saturday 1 180
7 CHICAGO Friday 2 200
8 CHICAGO Friday 3 210
我希望输出是以下两种尝试的某种组合。将数组功能与条形图结合起来。
# Successful attempt at making an array of charts but wrong type
df[['DAY', 'TIME_BIN']].hist(by=df['CITY'])
plt.show()
# Bar chart with proper counts but x-axis did not combine properly
ax = df.plot(x=['DAY', 'TIME_BIN'],
y='COUNT',
kind='bar',
color=["g","b"])
plt.show()
【问题讨论】:
标签: python pandas matplotlib bar-chart