使用 matplotlib 获取叠加直方图
Using matplotlib to obtain an overlaid histogram
我是 python 的新手,我正在尝试为来自 Kaggle
的操纵数据集绘制叠加直方图。我试着用 matplotlib
来做。这是一个展示美国近年来枪支暴力历史的数据集。我只为 EDA
选择了几列。
import pandas as pd
data_set = pd.read_csv("C:/Users/Lenovo/Documents/R related
Topics/Assignment/Assignment_day2/04 Assignment/GunViolence.csv")
state_wise_crime = data_set[['date', 'state', 'n_killed', 'n_injured']]
date_value = pd.to_datetime(state_wise_crime['date'])
import datetime
state_wise_crime['Month']= date_value.dt.month
state_wise_crime.drop('date', axis = 1)
no_of_killed = state_wise_crime.groupby(['state','Year'])
['n_killed','n_injured'].sum()
no_of_killed = state_wise_crime.groupby(['state','Year']
['n_killed','n_injured'].sum()
I want an overlaid histogram that shows the no. of people killed and no.of people injured with the different states on the x-axis
欢迎来到 Stack Overflow!从下次开始,请 post 您的数据采用以下格式(不是 link 或图像),以便我们更轻松地解决问题。此外,如果您询问图形输出,显示所需图形的内容(即使是手绘)将非常有帮助:)
df
state Year n_killed n_injured
0 Alabama 2013 9 3
1 Alabama 2014 591 325
2 Alabama 2015 562 385
3 Alabama 2016 761 488
4 Alabama 2017 856 544
5 Alabama 2018 219 135
6 Alaska 2014 49 29
7 Alaska 2015 84 70
8 Alaska 2016 103 88
9 Alaska 2017 70 69
正如我在您原来的 post 中评论的那样,在这种情况下,条形图比直方图更合适,因为您的目的似乎是通过州级比较可视化每年的汇总统计数据(总和) .据我所知,最简单的选择是使用 Seaborn。这取决于您希望如何显示数据,但下面是一个示例。代码就这么简单
import seaborn as sns
sns.barplot(x='Year', y='n_killed', hue='state', data=df)
输出:
希望这对您有所帮助。
我是 python 的新手,我正在尝试为来自 Kaggle
的操纵数据集绘制叠加直方图。我试着用 matplotlib
来做。这是一个展示美国近年来枪支暴力历史的数据集。我只为 EDA
选择了几列。
import pandas as pd
data_set = pd.read_csv("C:/Users/Lenovo/Documents/R related
Topics/Assignment/Assignment_day2/04 Assignment/GunViolence.csv")
state_wise_crime = data_set[['date', 'state', 'n_killed', 'n_injured']]
date_value = pd.to_datetime(state_wise_crime['date'])
import datetime
state_wise_crime['Month']= date_value.dt.month
state_wise_crime.drop('date', axis = 1)
no_of_killed = state_wise_crime.groupby(['state','Year'])
['n_killed','n_injured'].sum()
no_of_killed = state_wise_crime.groupby(['state','Year']
['n_killed','n_injured'].sum()
I want an overlaid histogram that shows the no. of people killed and no.of people injured with the different states on the x-axis
欢迎来到 Stack Overflow!从下次开始,请 post 您的数据采用以下格式(不是 link 或图像),以便我们更轻松地解决问题。此外,如果您询问图形输出,显示所需图形的内容(即使是手绘)将非常有帮助:)
df
state Year n_killed n_injured
0 Alabama 2013 9 3
1 Alabama 2014 591 325
2 Alabama 2015 562 385
3 Alabama 2016 761 488
4 Alabama 2017 856 544
5 Alabama 2018 219 135
6 Alaska 2014 49 29
7 Alaska 2015 84 70
8 Alaska 2016 103 88
9 Alaska 2017 70 69
正如我在您原来的 post 中评论的那样,在这种情况下,条形图比直方图更合适,因为您的目的似乎是通过州级比较可视化每年的汇总统计数据(总和) .据我所知,最简单的选择是使用 Seaborn。这取决于您希望如何显示数据,但下面是一个示例。代码就这么简单
import seaborn as sns
sns.barplot(x='Year', y='n_killed', hue='state', data=df)
输出:
希望这对您有所帮助。