[Qt-4] PyQt5画图且横坐标为时间

import pyqtgraph as pg
from datetime import datetime

date_df = pd.read_csv(self.filepath, encoding='gb2312')

def draw1(self):
    self.graphicsView1.clear()
    load_column = self.comboBox.currentText()    # 读取要画的列

    times1 = []
    for time in data_df.iloc[:, 0]:    # 第一列是时间,格式如2020/9/1 0:02
        times1.append(datetime.strptime(time, "%Y/%m/%d %H:%M").timestamp()/60)    # 先用striptime格式化,再转化成时间戳除以60,即分数绝对值,这样下一分就+1
    
    # plot([x],[y])画图,这里graphicsView要升级成pyqtgraph
    # 升级参考 https://zhuanlan.zhihu.com/p/661440594
    self.graphicsView1.plot(times1, data_df[load_column], pen='r')
    # 或者如下定义pen更多属性
    pen1 = pg.mkPen(color=(255, 0, 0), width=15)  # 设置曲线颜色为红色,宽度设置为15个像素点
    self.graphicsView1.plot(times1, data_df[load_column], pen=pen1)
    
    self.graphicsView1.setLabel('left', load_column)    # 左侧坐标轴
    self.graphicsView1.setLabel('bottom', date_df.columns[0])    # 底部坐标轴
    self.graphicsView1.showGrid(x=True, y=True)

    # 更高级玩法,添加图例和打点。如果设置pen=None则画散点图
    self.graphicsView1.addLegend()
    self.graphicsView1.plot(times1, date_df[load_column], pen=pen1, name="曲线一", symbol='o', symbolSize=5, symbolBrush=('r'))

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyQt5中的QBarSeries是用于绘制柱状图的类,它可以在图表中显示不同类别的数据。横坐标指的是柱状图中的类别或者标签,用于表示不同的数据组。 在QBarSeries中,可以使用QBarSet来设置每个类别的数据。横坐标可以通过设置QBarCategoryAxis来定义。 以下是设置横坐标的示例代码: ```python from PyQt5.QtChart import QChart, QChartView, QBarSeries, QBarSet, QBarCategoryAxis from PyQt5.QtWidgets import QApplication, QMainWindow app = QApplication([]) window = QMainWindow() # 创建柱状图系列 series = QBarSeries() # 创建柱状图数据集 set0 = QBarSet('Category 1') set0.append([1, 2, 3, 4, 5]) set1 = QBarSet('Category 2') set1.append([6, 7, 8, 9, 10]) # 将数据集添加到系列中 series.append(set0) series.append(set1) # 创建横坐标 axisX = QBarCategoryAxis() axisX.append(['Label 1', 'Label 2', 'Label 3', 'Label 4', 'Label 5']) # 创建图表并设置系列和 chart = QChart() chart.addSeries(series) chart.setAxisX(axisX, series) # 创建图表视图并设置图表 chartView = QChartView(chart) window.setCentralWidget(chartView) window.show() app.exec_() ``` 在上述示例中,我们创建了一个柱状图系列`series`,并创建了两个数据集`set0`和`set1`,分别表示两个类别的数据。然后,我们创建了一个横坐标`axisX`,并将标签添加到上。最后,我们创建了一个图表`chart`,将系列和添加到图表中,并将图表显示在窗口中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值