在多个子图中设置不同的阈值线

2024-10-02 02:33:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我想将阈值线(水平红色虚线)设置为具有不同值的多个子图

图1的阈值应为5000,图2的阈值应为4000,图3的阈值应为3000,图4的阈值应为4000

import matplotlib.pyplot as plt
from matplotlib import style
import pandas as pd
import matplotlib.dates as md


读取csv文件以绘制图形

datargraph1 = pd.read_csv('REPORT1.csv')
datargraph2 = pd.read_csv('REPORT2.csv')
datagraph3 = pd.read_csv('REPORT3.csv')
datagraph4 = pd.read_csv('REPORT4.csv')

在这里,我试图隐藏时间序列中的列

datargraph1['Timestamp'] = pd.to_datetime(datargraph1['Timestamp'], format='%H%M%S')
datargraph2['Timestamp'] = pd.to_datetime(datargraph2['Timestamp'], format='%H%M%S')
datagraph3['Timestamp'] = pd.to_datetime(datagraph3['Timestamp'], format='%H%M%S')
datagraph4['Timestamp'] = pd.to_datetime(datagraph4['Timestamp'], format='%H%M%S')

将ylimits设置为不同的轴

style.use('ggplot')
fig, axes = plt.subplots(ncols=4)


axes[0].title.set_text('Graph 1')

axes[0].set_ylim([0,8000])
axes[0].axhline( y=5000, xmin=0, xmax=1)


axes[1].title.set_text('Graph 2')
axes[1].set_ylim([0,6000])


axes[2].title.set_text('Graph 3')

axes[2].set_ylim([0,6000])

axes[3].title.set_text('Graph 4')


axes[3].set_ylim([0,6000])

定义24小时时钟的x轴

axes[0].xaxis.set_major_locator(md.HourLocator(interval=1))
axes[0].xaxis.set_major_formatter(md.DateFormatter('%H:%M:%S'))


axes[1].xaxis.set_major_locator(md.HourLocator(interval=1))
axes[1].xaxis.set_major_formatter(md.DateFormatter('%H:%M:%S'))

axes[2].xaxis.set_major_locator(md.HourLocator(interval=1))
axes[2].xaxis.set_major_formatter(md.DateFormatter('%H:%M:%S'))

axes[3].xaxis.set_major_locator(md.HourLocator(interval=1))
axes[3].xaxis.set_major_formatter(md.DateFormatter('%H:%M:%S'))

axes[0].plot(datargraph1['Timestamp'], datargraph1['CurrentCPS'], color='b')

axes[1].plot(datargraph2['Timestamp'], datargraph2['CurrentCPS'], color='r')
axes[2].plot(datagraph3['Timestamp'], datagraph3['CurrentCPS'], color='g')
axes[3].plot(datagraph4['Timestamp'], datagraph4['CurrentCPS'], color='y')





plt.show()



但我犯了一个错误

定位器试图从691587.6916666667到735781.81666667生成1060660个刻度:超出定位器.MAXTICKS

enter image description here


Tags: csvimportread阈值mdtimestamppdset
1条回答
网友
1楼 · 发布于 2024-10-02 02:33:26

您可以对每个ax使用^{}

ax1.axhline(5000, color='r', linestyle=':')
ax2.axhline(4000, color='r', linestyle=':')
ax3.axhline(3000, color='r', linestyle=':')
ax4.axhline(4000, color='r', linestyle=':')

per-plot thresholds

相关问题 更多 >

    热门问题