【问题标题】:Plotting a bar chart绘制条形图
【发布时间】:2020-06-23 11:36:40
【问题描述】:
我在 python 中有一个导入的 excel 文件,并想创建一个条形图。
在条形图中,我希望条形按利润分隔,0-10、10-20、20-30...
我该怎么做呢?
这是我尝试过的事情之一:
import NumPy as np
import matplotlib.pyplot as plt
%matplotlib inline
df.plot(kind="bar",x="profit", y="people")
df[df.profit<=10]
plt.show()
和:
df[df.profit range (10,20)]
【问题讨论】:
标签:
python
pandas
charts
bar-chart
【解决方案1】:
如果没有数据样本,很难更好地帮助您,但我随机构建了一个数据集,该数据集应该具有您的形状,因此希望此解决方案对您有用:
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
# For random data
import random
%matplotlib inline
df = pd.DataFrame({'profit':[random.choice([i for i in range(100)]) for x in range(100)], 'people':[random.choice([i for i in range(100)]) for x in range(100)]})
display(df)
out = pd.cut(df['profit'], bins=[x*10 for x in range(10)], include_lowest=True)
ax = out.value_counts(sort=False).plot.bar(rot=0, color="b", figsize=(14,4))
plt.xlabel("Profit")
plt.ylabel("People")
plt.show()
我在这里查看了另一个问题 (Pandas bar plot with binned range),他们在那里解释了如何解决这个问题。
希望对你有帮助:)