secondary_y=True 改变 pandas 中的 x 轴
secondary_y=True changes x axis in pandas
我试图在 Pandas 中从不同的数据帧中绘制两个系列。
它们的轴都是日期时间对象,因此可以将它们绘制在一起:
amazon_prices.Close.plot()
data[amazon].BULL_MINUS_BEAR.resample("W").plot()
plt.plot()
产量:
很好,但我需要绿色图表有自己的比例。所以我使用
amazon_prices.Close.plot()
data[amazon].BULL_MINUS_BEAR.resample("W").plot(secondary_y=True)
plt.plot()
这 secondary_y 造成了一个问题,因为我没有所需的图表,而是以下内容:
非常感谢您对此提供的任何帮助。
(不太相关的注释:我(显然)正在使用 Pandas、Matplotlib,所有这些都在 Ipython 笔记本中)
编辑:
从那以后,我注意到删除 resample("W") 可以解决问题。然而,这仍然是一个问题,因为未重新采样的数据噪声太大,不可见。能够用次轴绘制采样数据将非常有帮助。
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()
我遇到了同样的问题,当我想要 secondary_y 时总是得到一个奇怪的情节。
我不知道为什么没有人在这个 post 中提到这个方法,但这是我如何让它工作的,使用与 :
相同的示例
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
我试图在 Pandas 中从不同的数据帧中绘制两个系列。
它们的轴都是日期时间对象,因此可以将它们绘制在一起:
amazon_prices.Close.plot()
data[amazon].BULL_MINUS_BEAR.resample("W").plot()
plt.plot()
产量:
很好,但我需要绿色图表有自己的比例。所以我使用
amazon_prices.Close.plot()
data[amazon].BULL_MINUS_BEAR.resample("W").plot(secondary_y=True)
plt.plot()
这 secondary_y 造成了一个问题,因为我没有所需的图表,而是以下内容:
非常感谢您对此提供的任何帮助。
(不太相关的注释:我(显然)正在使用 Pandas、Matplotlib,所有这些都在 Ipython 笔记本中)
编辑: 从那以后,我注意到删除 resample("W") 可以解决问题。然而,这仍然是一个问题,因为未重新采样的数据噪声太大,不可见。能够用次轴绘制采样数据将非常有帮助。
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()
我遇到了同样的问题,当我想要 secondary_y 时总是得到一个奇怪的情节。
我不知道为什么没有人在这个 post 中提到这个方法,但这是我如何让它工作的,使用与
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