我有这个函数plot
DataFrames
:
df=pd.read_csv('dataset_SCL.csv', parse_dates=parse_dates, low_memory= False)
def bar_plot_vuelos(var1: str, var2: str, plot_type: str, plot_title: str, y_label: str, x_label: str) -> pd.DataFrame.plot :
"""
Return bar plot.
"""
df_groups=df.groupby(var1)[var2].sum()
df_groups.plot(kind=plot_type)
bar_plot=df_groups.plot(kind=plot_type, title=plot_title ,ylabel=y_label, xlabel=x_label, figsize=(25, 9),stacked= True)
return bar_plot
This function works fine. The problem is when I try to make 3 graphs, I can see only 1 (the last one)
plot1=bar_plot_vuelos('SIGLADES', 'Atraso', 'bar', 'Cantidad de atrasos por destino', 'Cantidad de atrasos', 'Destino')
plot2=bar_plot_vuelos('OPERA', 'Atraso', 'bar', 'Atraso por aerolíneas', 'Cantidad de atrasos', 'Aerolinea')
plot3=bar_plot_vuelos('MES', 'Atraso', 'bar', 'Cantidad de atrasos por mes', 'Cantidad de atrasos', 'Meses')
我想要的:显示所有3个图
编辑解决:我添加了plt.figure()
,原来的问题是:"为什么df. plot只显示最后一个图"?
def bar_plot_vuelos(var1: str, var2: str, plot_type: str, plot_title: str, y_label: str, x_label: str) -> pd.DataFrame.plot :
"""
Return bar plot.
"""
df_groups=df.groupby(var1)[var2].sum()
plt.figure()
df_groups.plot(kind=plot_type)
bar_plot=df_groups.plot(kind=plot_type, title=plot_title ,ylabel=y_label, xlabel=x_label, figsize=(25, 9),stacked= True)
return bar_plot
这将为3个示例创建一个地物。
plot1=bar_plot_vuelos('SIGLADES', 'Atraso', 'bar', 'Cantidad de atrasos por destino', 'Cantidad de atrasos', 'Destino')
plot2=bar_plot_vuelos('OPERA', 'Atraso', 'bar', 'Atraso por aerolíneas', 'Cantidad de atrasos', 'Aerolinea')
plot3=bar_plot_vuelos('MES', 'Atraso', 'bar', 'Cantidad de atrasos por mes', 'Cantidad de atrasos', 'Meses')
1条答案
按热度按时间fwzugrvs1#
你要第一个还是最后一个
我看到的是你在同一个
Figure
中绘图,这覆盖了每一个绘图,我复制了它,总是得到最后一个。如果你想在同一张图中显示所有的3个图,我建议使用多个
Axes
,每个图一个。