gpt4 book ai didi

Python创建条形图比较2组数据

转载 作者:行者123 更新时间:2023-12-02 13:49:43 30 4
gpt4 key购买 nike

我有一个笔记本,上面有 2 个条形图,一个是冬季数据,一个是夏季数据。我计算了所有犯罪的总数,并使用代码将它们绘制在条形图中:

ax = summer["crime_type"].value_counts().plot(kind='bar')
plt.show()

显示如下图表:

enter image description here

我有另一个几乎相同的图表,但针对的是冬天:

ax = winter["crime_type"].value_counts().plot(kind='bar')
plt.show()

我希望在同一个条形图中将这 2 个图表相互进行比较(x 轴上的每项犯罪都有 2 个条形图,一个冬天和一个夏天)。

我已经尝试过,这只是我的实验:

bx = (summer["crime_type"],winter["crime_type"]).value_counts().plot(kind='bar')
plt.show()

如有任何建议,我们将不胜感激!

最佳答案

以下内容会生成数据的虚拟数据并生成您想要的分组条形图:

import random
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

s = "Crime Type Summer|Crime Type Winter".split("|")

# Generate dummy data into a dataframe
j = {x: [random.choice(["ASB", "Violence", "Theft", "Public Order", "Drugs"]
) for j in range(300)] for x in s}
df = pd.DataFrame(j)

index = np.arange(5)
bar_width = 0.35

fig, ax = plt.subplots()
summer = ax.bar(index, df["Crime Type Summer"].value_counts(), bar_width,
label="Summer")

winter = ax.bar(index+bar_width, df["Crime Type Winter"].value_counts(),
bar_width, label="Winter")

ax.set_xlabel('Category')
ax.set_ylabel('Incidence')
ax.set_title('Crime incidence by season, type')
ax.set_xticks(index + bar_width / 2)
ax.set_xticklabels(["ASB", "Violence", "Theft", "Public Order", "Drugs"])
ax.legend()

plt.show()

通过这个脚本我得到了:

this image

您可以在此处查看 matplotlib 文档中的演示:https://matplotlib.org/gallery/statistics/barchart_demo.html

需要注意的重要一点是索引!

index = np.arange(5) # Set an index of n crime types
...
summer = ax.bar(index, ...)
winter = ax.bar(index+bar_width, ...)
...
ax.set_xticks(index + bar_width / 2)

这些线将条形排列在水平轴上,以便将它们分组在一起。

关于Python创建条形图比较2组数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53182452/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com