Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

plot line over boxplot using pandas DataFrame

I have a pandas DataFrame with 16 columns corresponding years (2000 to 2015) and 12 lines with values for each month.

I'm trying plot a boxplot and a line with 2015 values in same fig in order to compare, using this code:

import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_excel('hidro_ne.xlsx')
fig, ax = plt.subplots()
ax1 = df[2015].plot(ax=ax, linewidth=2, legend='2015',color='red')
df.T.plot.box(yticks=range(0, 100, 5), ax=ax1)
plt.show()

In 2015 column I have data from January until September, but I get a shift line plot, from yline until september:

enter image description here

In fact the line should start at "Jan" and goes until "set", and not finish in "ago":

>>> df[2015]
Jan    16.41
Fev    18.34
Mar    23.52
Abr    27.40
Mai    26.96
Jun    25.34
Jul    22.49
Ago    18.38
Set    13.87
Out      NaN
Nov      NaN
Dez      NaN

I'm running the script using Python 3.4.3, pandas 1.7.0, over Windows 8.1.

How can I fix it?

like image 439
Hugo Salvador Avatar asked Sep 26 '22 06:09

Hugo Salvador


1 Answers

Thank you so much, pbreach.

It works to me.

I made:

import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_excel('hidro_ne.xlsx')

fig, ax = plt.subplots()
ax.plot(list(range(1,13)), df[2015].values, 'r', linewidth=2)
ax.legend(['2015'])
df.T.plot.box(yticks=range(0, 105, 5), ax=ax)

enter image description here

like image 89
Hugo Salvador Avatar answered Sep 30 '22 07:09

Hugo Salvador