我试图使用secondary_y
在左侧y轴上绘制3个系列,在右侧绘制1个,但是我不清楚如何定义正确的y轴刻度,就像我在留下ylim=()
。
我看过这篇文章:Interact directly with axes
......但是一旦我有了:
import matplotlib.pyplot as plt
df = pd.DataFrame(np.random.randn(10,3))
fig, ax1 = plt.subplots()
ax2 = ax1.twinx()
ax1.plot(df.index,df.iloc[:,[0,2]])
ax2.plot(df.index, df.iloc[:,2])
plt.show()
根本不会产生任何结果。我正在使用:
我发现这些链接很有用:
答案 0 :(得分:1)
您需要在适当的斧头上使用set_ylim
。
例如:
ax2 = ax1.twinx()
ax2.set_ylim(bottom=-10, top=10)
此外,检查您的代码时,您似乎错误地指定了iloc
列。尝试:
ax1.plot(df.index, df.iloc[:, :2]) # Columns 0 and 1.
ax2.plot(df.index, df.iloc[:, 2]) # Column 2.
答案 1 :(得分:0)
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(10,3))
print (df)
fig, ax1 = plt.subplots()
ax2 = ax1.twinx()
ax1.plot(df.index,df.iloc[:,[0,2]])
ax2.plot(df.index, df.iloc[:,2])
plt.show()
答案 2 :(得分:0)
您可以在不直接调用ax.twinx()的情况下执行此操作:
#Plot the first series on the LH y-axis
ax1 = df.plot('x_column','y1_column')
#Add the second series plot, and grab the RH axis
ax2 = df.plot('x_column','y2_column',ax=ax1)
ax2.set_ylim(0,10)
注意:仅在Pandas 19.2中测试