我正在尝试使用相同的X索引在不同的Y轴上记录两种不同的数据类型:
temperatureData = pd.read_csv("temperatureData.csv")
temperatureData = temperatureData.set_index('Time date')
y1_data1 = temperatureData['Temperature1']
y1_data2 = temperatureData['Temperature2']
y1_data3 = temperatureData['Temperature3']
y1_data4 = temperatureData['Temperature4']
y2_data1 = temperatureData['Vent1']
y2_data2 = temperatureData['Vent2']
x = temperatureData.index
fig, ax1 = plt.subplots()
ax2 = ax1.twinx() # instantiate a second axes that shares the same x-axis
ax1.set_xlabel('Date Time', color='C0')
ax1.set_ylabel('Temperatures', color='C0')
ax1.tick_params(axis='x', labelcolor='C0', labelrotation=90)
ax1.tick_params(axis='y', labelcolor='C0')
curve1 = ax1.plot(x, y1_data1, label='Temperature1', color='tab:blue')
curve2 = ax1.plot(x, y1_data2, label='Temperature2', color='tab:orange')
curve3 = ax1.plot(x, y1_data3, label='Temperature3', color='tab:green')
curve4 = ax1.plot(x, y1_data4, label='Temperature4', color='tab:red')
ax2.set_ylabel('Open (Deg)', color='C0')
ax2.tick_params(axis='y', labelcolor='C0')
curve5 = ax2.plot(x, y2_data1, label='Vent1', color='r')
curve6 = ax2.plot(x, y2_data2, label='Vent2', color='b')
plt.title('Temperatures', color='C0')
plt.grid('on', linestyle='--')
plt.plot()
plt.show()然而,现在它可以工作了,输出大约需要5分钟才能生成,因为每个X轴值都是以毫秒为单位采样的两周数据样本。所以你可以理解其中的原因。
有没有办法限制显示的x值?这就是生成速度如此之慢的原因吗?例如,如果我运行一个没有以下行的小样本集:
temperatureData = temperatureData.set_index('Time date')它生成的图形为:秒= 0.9089131355285645,但是我没有得到X轴上的日期时间值。我只得到了索引号。有了这行代码,我得到了X轴上的日期时间值,但这需要:秒= 208.08867192268372
我试过了:
x = temperatureData['Date Time']但这只会产生一个KeyError:'Date Time‘我觉得这里有一些关于索引的有趣的东西,我不明白。

发布于 2021-02-01 04:19:27
好了,我把它算出来了。我必须做的是使用数据帧而不是单独的列:
temperatureData = pd.read_csv("temperatureData.csv")
temperatureData = temperatureData.set_index('Time date')
ventData = pd.read_csv("ventData.csv")
ventData = ventData.set_index('Time date')
dfTemp = temperatureData.set_index('Time date')
vents = ventData.set_index('Time date')
fig, ax1 = plt.subplots()
ax2 = ax1.twinx()
ax1.set_xlabel('Date Time', color='C0')
ax1.set_ylabel('Temperatures', color='C0')
ax2.set_ylabel('Vents', color='C0')
ax1.tick_params(axis='x', labelcolor='C0', labelrotation=90)
ax1.tick_params(axis='y', labelcolor='C0')
ax2.tick_params(axis='y', labelcolor='C0')
curve1 = ax1.plot(dfTemp, label='Temperature supply')
curve2 = ax2.plot(vents, label='Vents')
plt.title('Temperatures', color='C0')
plt.grid('on', linestyle='--')
plt.show()现在,当我放大等时,它会缩放,加载速度非常快。

发布于 2021-01-30 19:39:33
您可以设置xtick。我使用了另一个数据来演示,您需要设置突出显示的行(倒数第二行)
y1_data1 = temperatureData['TemperatureF']
y1_data2 = temperatureData['Humidity']
y2_data1 = temperatureData['Wind SpeedMPH']
x = temperatureData.index
fig, ax1 = plt.subplots(figsize=(10,5))
ax2 = ax1.twinx() # instantiate a second axes that shares the same x-axis
ax1.set_xlabel('Date Time', color='C0')
ax1.set_ylabel('Temperatures', color='C0')
ax1.tick_params(axis='x', labelcolor='C0', labelrotation=90)
ax1.tick_params(axis='y', labelcolor='C0')
curve1 = ax1.plot(x, y1_data1, label='Temperature1', color='tab:blue')
curve2 = ax1.plot(x, y1_data2, label='Temperature2', color='tab:orange')
ax2.set_ylabel('Open (Deg)', color='C0')
ax2.tick_params(axis='y', labelcolor='C0')
curve5 = ax2.plot(x, y2_data1, label='Vent1', color='r')
plt.title('Temperatures', color='C0')
plt.grid('on', linestyle='--')
# set ticks here
ax1.set_xticks(range(0,len(x), 100)) #set interval here
plt.show()以100为间隔

以200为间隔

您可以根据需要设置间隔。
https://stackoverflow.com/questions/65967365
复制相似问题