PyQt5+QtChart实现绘制曲线图

 更新时间:2022年12月15日 15:04:16   作者:SongYuLong的博客  
QChart是一个QGraphicScene中可以显示的QGraphicsWidget。本文将利用QtChart实现曲线图的绘制,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下

QSplineSeries

QSplineSeries类将数据序列显示为曲线图。核心代码:

spline = QSplineSeries()
spline.append(0, 23)
spline.append(1, 56)

chart.addSeries(lineSeries)

常用方法

  • setPointsVisible(True) :设置数据点显示状态
  • setPointLabelsVisible(True):设置数据点标签显示状态
  • setPointLabelsFormat(“(@xPoint, @yPoint)”):设置数据点标签格式
  • setPointLabelsFont(QFont(None, 8)) :设置数据点标签字体
  • setPointLabelsColor(QColor(255, 0,0)) :设置数据点标签颜色

实现代码

import random
import sys

from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import Qt
from PyQt5.QtChart import QSplineSeries, QLineSeries, QChart, QChartView, QValueAxis


class MySplineWindow(QWidget):
    def __init__(self, parent=None):
        super(MySplineWindow, self).__init__(parent)
        self.setWindowTitle("曲线图表演示")

        chart = QChart()
        chart.setTitle("曲线图表")
        chart.setAnimationDuration(1500)
        chart.setAnimationOptions(QChart.SeriesAnimations)
        chart.setAnimationEasingCurve(QEasingCurve.OutCirc)
        chart.legend().show()

        spline = QSplineSeries()
        for value in range(1, 50):
            spline.append(value, round(random.random()*100))


        spline.setName("随机噪声")
        # spline.setColor(Qt.blue)
        spline.setPointsVisible(True)
        spline.setPointLabelsVisible(True)
        spline.setPointLabelsFormat("(@xPoint, @yPoint)")
        spline.setPointLabelsFont(QFont(None, 6))
        spline.setPointLabelsColor(Qt.darkBlue)
                
        chart.addSeries(spline)
        chart.createDefaultAxes()

        axis_x = QValueAxis()
        axis_x.setLabelFormat("%d")
        chart.addAxis(axis_x, Qt.AlignBottom)
        spline.attachAxis(axis_x)

        chartView = QChartView()
        chartView.setChart(chart)
        chartView.setRenderHint(QPainter.Antialiasing)
        
        vbox = QVBoxLayout()
        vbox.addWidget(chartView)
        self.setLayout(vbox)


if __name__ == "__main__":
    app = QApplication(sys.argv)
    win = MySplineWindow()
    win.show()
    sys.exit(app.exec_())

效果图

增加抗锯齿:chartView.setRenderHint(QPainter.Antialiasing)

到此这篇关于PyQt5+QtChart实现绘制曲线图的文章就介绍到这了,更多相关PyQt5 QtChart曲线图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python中用于去除空格的三个函数的使用小结

    Python中用于去除空格的三个函数的使用小结

    这篇文章主要介绍了Python中用于去除空格的三个函数的使用小结,对strip()和lstrip()和rstrip()这三个函数做了简单的讲解,需要的朋友可以参考下
    2015-04-04
  • python 泛型函数--singledispatch的使用解读

    python 泛型函数--singledispatch的使用解读

    这篇文章主要介绍了python 泛型函数--singledispatch的使用解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • Python实现贪吃蛇小游戏(单人模式)

    Python实现贪吃蛇小游戏(单人模式)

    这篇文章主要为大家详细介绍了Python实现单人模式的贪吃蛇小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • Tensorflow训练模型默认占满所有GPU的解决方案

    Tensorflow训练模型默认占满所有GPU的解决方案

    这篇文章主要介绍了Tensorflow训练模型默认占满所有GPU的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • Python调用DeepSeek API实现对本地数据库的AI管理

    Python调用DeepSeek API实现对本地数据库的AI管理

    这篇文章主要为大家详细介绍了Python如何基于DeepSeek模型实现对本地数据库的AI管理,文中的示例代码简洁易懂,有需要的小伙伴可以跟随小编一起学习一下
    2025-02-02
  • selenium自动化测试简单准备

    selenium自动化测试简单准备

    本文主要介绍了selenium自动化测试简单准备,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • 在Python中表示一个对象的方法

    在Python中表示一个对象的方法

    这篇文章主要介绍了在Python中表示一个对象的方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-06-06
  • Python+Appium实现自动化测试的使用步骤

    Python+Appium实现自动化测试的使用步骤

    这篇文章主要介绍了Python+Appium实现自动化测试的使用步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • Python数据持久化存储实现方法分析

    Python数据持久化存储实现方法分析

    这篇文章主要介绍了Python数据持久化存储实现方法,结合实例形式分析了Python基于pymongo及mysql模块的数据持久化存储操作相关实现技巧,需要的朋友可以参考下
    2019-12-12
  • Python实现word文档内容智能提取以及合成

    Python实现word文档内容智能提取以及合成

    这篇文章主要为大家详细介绍了如何使用Python实现从10个左右的docx文档中抽取内容,再调整语言风格后生成新的文档,感兴趣的小伙伴可以了解一下
    2025-04-04

最新评论