Python 大熊猫(和海生)小提琴国家与年份对比图
我正在学习熊猫,(观看),目前正在玩一个UFO观察台Python 大熊猫(和海生)小提琴国家与年份对比图,python,pandas,seaborn,Python,Pandas,Seaborn,我正在学习熊猫,(观看),目前正在玩一个UFO观察台 import pandas as pd ufo = pd.read_csv('https://raw.githubusercontent.com/justmarkham/pandas-videos/master/data/ufo.csv') ufo.head() ufo.Time = pd.to_datetime(ufo.Time) ufo['Year'] = ufo.Time.dt.year ufo.head() 现在,我想使用S
import pandas as pd
ufo = pd.read_csv('https://raw.githubusercontent.com/justmarkham/pandas-videos/master/data/ufo.csv')
ufo.head()
ufo.Time = pd.to_datetime(ufo.Time)
ufo['Year'] = ufo.Time.dt.year
ufo.head()
现在,我想使用Seaborn对每个州(在x轴上)和年份(在y轴上)进行比较。因此,该图显示了在任何给定年份、任何给定状态下的目击频率密度
如果我使用
ufo.State.value_counts()
我可以得到每个州所有计数的系列。但我如何按年份划分这些数据?我需要每个州每年的ufo目击数据
我是不是在正确的轨道上创造了一个海洋出生的小提琴情节?还是完全走错了方向 根据以下示例的文档中所示的示例: ax=sns.violinplot(x=“天”,y=“总账单”,数据=提示) 通过向
x=
和y=
参数提供列名,可以直接将所需列分配到x轴。以下代码显示tips
变量的数据结构
In [ ]: tips.head()
Out[ ]:
total_bill tip sex smoker day time size
0 16.99 1.01 Female No Sun Dinner 2
1 10.34 1.66 Male No Sun Dinner 3
2 21.01 3.50 Male No Sun Dinner 3
3 23.68 3.31 Male No Sun Dinner 2
4 24.59 3.61 Female No Sun Dinner 4
您的问题是使用violinplot
绘图,x轴显示ufo.State
,y轴显示ufo.Year
。因此,我认为这是不必要的,甚至因为ufo
数据已经被很好地描述,并且满足violinplot的参数格式
您可以通过将ufo.columnName
直接提供到x=
和y=
中来实现它。请参阅下面的代码:
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
ufo = pd.read_csv('https://raw.githubusercontent.com/justmarkham/pandas-videos/master/data/ufo.csv')
ufo.head()
City Colors Reported Shape Reported State \
0 Ithaca NaN TRIANGLE NY
1 Willingboro NaN OTHER NJ
2 Holyoke NaN OVAL CO
3 Abilene NaN DISK KS
4 New York Worlds Fair NaN LIGHT NY
Time Year
0 1930-06-01 22:00:00 1930
1 1930-06-30 20:00:00 1930
2 1931-02-15 14:00:00 1931
3 1931-06-01 13:00:00 1931
4 1933-04-18 19:00:00 1933
ufo.Time = pd.to_datetime(ufo.Time)
ufo['Year'] = ufo.Time.dt.year
fig, ax = plt.subplots(figsize=(12,8))
ax = sns.violinplot(x=ufo.State, y=ufo.Year)
# ax = sns.violinplot(x='State', y='Year', data=ufo) # Works the same with the code one line above
plt.show()
根据以下示例的文档中所示的示例: ax=sns.violinplot(x=“天”,y=“总账单”,数据=提示) 通过向
x=
和y=
参数提供列名,可以直接将所需列分配到x轴。以下代码显示tips
变量的数据结构
In [ ]: tips.head()
Out[ ]:
total_bill tip sex smoker day time size
0 16.99 1.01 Female No Sun Dinner 2
1 10.34 1.66 Male No Sun Dinner 3
2 21.01 3.50 Male No Sun Dinner 3
3 23.68 3.31 Male No Sun Dinner 2
4 24.59 3.61 Female No Sun Dinner 4
您的问题是使用violinplot
绘图,x轴显示ufo.State
,y轴显示ufo.Year
。因此,我认为这是不必要的,甚至因为ufo
数据已经被很好地描述,并且满足violinplot的参数格式
您可以通过将ufo.columnName
直接提供到x=
和y=
中来实现它。请参阅下面的代码:
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
ufo = pd.read_csv('https://raw.githubusercontent.com/justmarkham/pandas-videos/master/data/ufo.csv')
ufo.head()
City Colors Reported Shape Reported State \
0 Ithaca NaN TRIANGLE NY
1 Willingboro NaN OTHER NJ
2 Holyoke NaN OVAL CO
3 Abilene NaN DISK KS
4 New York Worlds Fair NaN LIGHT NY
Time Year
0 1930-06-01 22:00:00 1930
1 1930-06-30 20:00:00 1930
2 1931-02-15 14:00:00 1931
3 1931-06-01 13:00:00 1931
4 1933-04-18 19:00:00 1933
ufo.Time = pd.to_datetime(ufo.Time)
ufo['Year'] = ufo.Time.dt.year
fig, ax = plt.subplots(figsize=(12,8))
ax = sns.violinplot(x=ufo.State, y=ufo.Year)
# ax = sns.violinplot(x='State', y='Year', data=ufo) # Works the same with the code one line above
plt.show()