简体   繁体   中英

Cannot combine bar and line plot using pandas plot() function

I am plotting one column of a pandas dataframe as line plot, using plot() :

df.iloc[:,1].plot()

and get the desired result:

在此输入图像描述

Now I want to plot another column of the same dataframe as bar chart using

ax=df.iloc[:,3].plot(kind='bar',width=1)

with the result:

在此输入图像描述

And finally I want to combine both by

spy_price_data.iloc[:,1].plot(ax=ax)

which doesn't produce any plot.

Why are the x-ticks of the bar plot so different to the x-ticks of the line plot? How can I combine both plots in one plot?

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

some data

df = pd.DataFrame(np.random.randn(5,2))
print (df)
          0         1
0  0.008177 -0.121644
1  0.643535 -0.070786
2 -0.104024  0.872997
3 -0.033835  0.067264
4 -0.576762  0.571293

then we create an axes object (ax). Notice that we pass ax to both plots

_, ax = plt.subplots()

df[0].plot(ax=ax)
df[1].plot(kind='bar', ax=ax)

在此输入图像描述

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM