这里是新手程序员。我正在尝试学习Python,并且正在使用包含1994年至2003年美国出生数据的美国出生数据集。
我想每年创建一个散点图(10个底图),以显示每年每月的总出生人数。我“浪费”了整整一天的时间,但找不到正确的方法。我有一个包含所有所需数据的数据透视表,但无法将其放入绘图中。
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_csv("data/us_births.csv", skipinitialspace=True)
birth_per_month = df.groupby(['year','month']).births.sum().reset_index(name ='Births')
pd.pivot_table(birth_per_month, index='year', columns='month', values='Births')
答案 0 :(得分:0)
您的基本代码是正确的,也许这可以为您提供帮助:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
df = pd.read_csv("births.csv")
birth_per_month = df.groupby(['year','month']).births.sum().reset_index(name ='Births')
df = pd.pivot_table(birth_per_month, index='year', columns='month', values='Births')
从这里开始,我们可以进行子绘图。使用年份和相应数据的格式可能会转换为“熊猫系列”,不支持散点图。代替尝试这个:
fig, axarr = plt.subplots(5,2, figsize=(16,12))
axarr[0,0].scatter(df.columns,df.loc[1994])
axarr[0,0].set_title('1994')
axarr[0,1].scatter(df.columns,df.loc[1995])
axarr[0,1].set_title('1995')
axarr[1,0].scatter(df.columns,df.loc[1996])
axarr[1,0].set_title('1996')
axarr[1,1].scatter(df.columns,df.loc[1997])
axarr[1,1].set_title('1997')
#And so on
您最终会得到一些类似的东西: https://i.stack.imgur.com/4bvPx.png
希望它对您有帮助