Python 如何设置次轴的主定位器

Python 如何设置次轴的主定位器,python,matplotlib,Python,Matplotlib,我想为具有24小时间隔的次轴设置主定位器,但它无效并且不会导致任何错误 import pandas as pd import matplotlib.pyplot as plt from matplotlib.ticker import MultipleLocator dt=pd.DataFrame({'time':[100000,200000,500000,800000],'value':[1,2,4,6]}) plot= plt.subplot() plot.plot(dt.time,dt.

我想为具有24小时间隔的次轴设置主定位器,但它无效并且不会导致任何错误

import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.ticker import MultipleLocator

dt=pd.DataFrame({'time':[100000,200000,500000,800000],'value':[1,2,4,6]})
plot= plt.subplot()
plot.plot(dt.time,dt.value)
x_major_locator=plt.MultipleLocator(100000)
plot.xaxis.set_major_locator(x_major_locator)
plot.set_xlabel("Second")

s2h=lambda s: s/3600
h2s=lambda h: h*3600
ax2=plot.secondary_xaxis("top",functions=(s2h,h2s))
x_major_locator=plt.MultipleLocator(24)
ax2.xaxis.set_major_locator(x_major_locator)
ax2.set_xlabel("Hour")
plt.show()

我不知道为什么记号没有被修改;然而,解决这个问题的一种方法是创建一个共享
y
的新子地块轴。只要不更改限制,以下操作将起作用,因为线是相互重叠的。如果您确实需要更改限制,那么您可以通过在负的
y
空间中绘制直线,并设置
ylims
以保留您的顶部x轴,来执行一种简单的方法

import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.ticker import MultipleLocator

dt=pd.DataFrame({'time':[100000,200000,500000,800000],'value':[1,2,4,6]})
plot= plt.subplot()
plot.plot(dt.time,dt.value)
x_major_locator=MultipleLocator(100000)
plot.xaxis.set_major_locator(x_major_locator)
plot.set_xlabel("Second")

s2h=lambda s: s/3600

h2s=lambda h: h*3600

#ax2=plot.secondary_xaxis("top",functions=(s2h,h2s))
ax2 = plot.twiny()
ax2.plot(s2h(dt.time),dt.value)



x_major_locator = MultipleLocator(24)
ax2.xaxis.set_major_locator(x_major_locator)
ax2.set_xlabel("Hour")

#ax2.set_xlim(0,200) #If you do this, you get 2 lines

plt.show()

您收到了什么错误消息?我得到了一个语法错误,然后在纠正它之后又出现了一个错误,因为你应该在几行中使用
plt
而不是
plot
。@BenT-是的,缺少
'time'
之后,然后
plt.show()
应该是
plt.show()
,但不管怎样,在修复了这两个之后,结果并没有像预期的那样具有多个定位器。我猜修复将使用Axes.twiny,但尚未获得成功的结果