Andrew
Andrew

Reputation: 195

Why are my plots being displayed separately, rather than on the same graph?

I have created two line plots with this dataset. The first lineplot shows the number of flight accidents in a given year. The second lineplot shows the number of fatalities in a given year. I want to put both line plots on the same graph. This is the code I have used:

fatalities=df[['Fatalities','Date']]
fatalities['Year of Fatality']=fatalities['Date'].dt.year
fatalities.drop('Date',inplace=True)
fatalities.set_index('Year of Fatality',inplace=True)
fatalities.sort_index(inplace=True)


plt.figure(figsize=(12,9))
plt.title("Number of Flight Accidents Since 1908",fontsize=20)
plt.ylabel("Number of Flight Accidents")
plt.xlabel("Year")
plt.xticks(year.index,rotation=90)
year.plot()
fatalities.plot()
plt.show()

What I get are two plots, with on above the other: the plot which shows the number of fatalities and the plot which shows the number of flight accidents.

enter image description here

What I want is one graph that shows the two line plots. Any help would be much appreciated. (Side note: how can I rotate the xticks 90 degrees? I used the rotation argument in the plt.xticks() but this had zero affect).

Upvotes: 0

Views: 140

Answers (1)

GPhilo
GPhilo

Reputation: 19123

Given the use of .plot() and variables called df, I assume you're using pandas dataframes (if that's not the case, the answer still probably applies, look up the docs for your plot function).

Pandas' plot by default puts the plots in their own axis, unless you pass one to draw on via the ax attribute:

fig, ax = plt.subplots()
year.plot(ax=ax)
fatalities.plot(ax=ax)

Upvotes: 1

Related Questions