secondary_y = True在pandas中更改x轴

时间:2015-04-16 21:02:04

标签: python pandas matplotlib plot ipython-notebook

我试图在不同的数据帧中在Pandas中绘制两个系列。

它们的轴都是日期时间对象,因此它们可以一起绘制:

amazon_prices.Close.plot()
data[amazon].BULL_MINUS_BEAR.resample("W").plot()
plt.plot()

收率:

enter image description here

一切都很好,但我需要绿色图表有自己的比例。

所以我用了
amazon_prices.Close.plot()
data[amazon].BULL_MINUS_BEAR.resample("W").plot(secondary_y=True)
plt.plot()

这个secondary_y会产生一个问题,因为我没有所需的图表,而是:

enter image description here

非常感谢任何帮助。

(不太相关的注释:我(显然)使用Pandas,Matplotlib,所有这些都在Ipython笔记本中)

编辑: 我已经注意到删除重新采样(" W")解决了这个问题。然而,这仍然是一个问题,因为非重采样数据太嘈杂而不可见。能够使用辅助轴绘制采样数据将非常有用。

2 个答案:

答案 0 :(得分:4)

import matplotlib.pyplot as plt
import pandas as pd
from numpy.random import random

df = pd.DataFrame(random((15,2)),columns=['a','b'])
df.a = df.a*100

fig, ax1 = plt.subplots(1,1)
df.a.plot(ax=ax1, color='blue', label='a')
ax2 = ax1.twinx()
df.b.plot(ax=ax2, color='green', label='b')
ax1.set_ylabel('a')
ax2.set_ylabel('b')
ax1.legend(loc=3)
ax2.legend(loc=0)
plt.show()

enter image description here

答案 1 :(得分:2)

我遇到了同样的问题,当我想要secondary_y时总是得到一个奇怪的情节。

我不知道为什么在这篇文章中没有人提到这种方法,但是下面是我如何使用与cphlewis相同的示例来使用它的方法:

import matplotlib.pyplot as plt
import pandas as pd
from numpy.random import random

df = pd.DataFrame(random((15,2)),columns=['a','b'])
ax = df.plot(secondary_y=['b'])
plt.show()

Here's what it'll look like