qpainter绘制图片(qpainter画曲线图)

qpainter绘制图片(qpainter画曲线图)废话不多说 直接上代码 注释很详细 CSDN 也是本人 coding utf 8 File 曲线图标准测试实例 py Author raymood Time 2022 7 11 9 00 description 这是一个绘制月份平均温度的曲线示例 QtChart 基础绘制图表功能没问题 但是相比较

大家好,我是讯享网,很高兴认识大家。



废话不多说,直接上代码,注释很详细,CSDN也是本人

# -- coding: utf-8 --

 

“”“

@File    : 曲线图标准测试实例.py

@Author  : raymood

@Time    : 2022/7/11 9:00

@description : 这是一个绘制月份平均温度的曲线示例, QtChart基础绘制图表功能没问题,但是相比较 matplotlib,有些功能无法实现(也是我水平不够的原因)

ps:QtChart这个库PyQT5没有默认安装,请单独安装,Pycharm 搜索pyqtchart,或者 pip install pyqtchart

”“”

import sys

 

from PyQt5.QtChart import QChartView, QValueAxis, QLineSeries

from PyQt5.QtCore import Qt, QPointF

from PyQt5.QtGui import QPainter, QBrush

from PyQt5.QtWidgets import Qapplication, QWidget

 

if name == ‘main’:

    app = Qapplication(sys.argv)

 

    # 1、创建一个可以存放曲线的窗口

    window = QWidget()

    window.resize(800, 600)

    window.setMaximumSize(window.size())

    window.setWindowTitle(‘温度曲线绘制’)

    # 创建一个存放曲线的容器,其实可以不用指定父类QWidget,后续进行show();但是由于我们实际是不可能的一个窗口就放一个曲线,所以建议指定父类

    charView = QChartView(window)

    charView.setGeometry(0, 0, 800, 600)


讯享网

    charView.setRenderHint(QPainter.Antialiasing)  # 抗锯齿, 可以使曲线放大缩小的时候不会失真

 

    # 2、坐标轴

    # x轴

    x_Aix = QValueAxis()  # 定义x轴,实例化x轴

    x_Aix.setRange(1, 12.0)  # 设置量程

    x_Aix.setLabelFormat(“%0.0f”)  # 设置坐标轴坐标显示精确到小数点后0位

    x_Aix.setTickCount(12)  # 设置x轴划分

    x_Aix.setMinorTickCount(1)  # 设置每个单元格划分后,有几个小的分级

    x_Aix.setTitleText(‘月份(月)’)  # 轴标题设置

    x_Aix.setLabelsAngle(30)  # 设置标签的角度,单位为度

 

    # y轴

    y_Aix = QValueAxis()  # 定义y轴

    y_Aix.setRange(0.00, 100.0)

    y_Aix.setLabelFormat(“%0.1f”)  # 设置坐标轴坐标显示精确到小数点后1位

    y_Aix.setTickCount(11)

    y_Aix.setMinorTickCount(1)

    y_Aix.setTitleText(‘温度(℃)’)

 

    # 将相应坐标轴属性添加至QChartView

    charView.chart().setAxisX(x_Aix)  # 设置x轴属性

    charView.chart().setAxisY(y_Aix)  # 设置y轴属性

    # charView.chart().createDefaultAxes()  # 使用默认坐标系 根据己添加的序列的类型,创建缺省的坐标轴,前面已有的坐标轴会被删除

    # 当设置默认坐标系后,曲线将根据添入的数据变化,比如setTickCount等对坐标轴样式 均会失效

    charView.chart().setTitle(“温度折线图”)  # 设置标题

    charView.chart().setTitleBrush(QBrush(Qt.gray))  # 设置标题笔刷,比如可改变标题颜色

 

    # 3、创建曲线,添加数据坐标

    # 创建曲线

    series = QLineSeries()  # 创建曲线实例

    # 创建坐标

    point_1 = QPointF(1, 2.0)  # 定义折线坐标点

    point_2 = QPointF(2, 5.0)

    point_3 = QPointF(3, 10.0)

    point_4 = QPointF(4, 9.0)

    point_5 = QPointF(5, 18.0)

    point_6 = QPointF(6, 20.0)

    point_7 = QPointF(7, 28.0)

    point_8 = QPointF(8, 29.0)

    point_9 = QPointF(9, 28.0)

    point_10 = QPointF(10, 24.0)

    point_11 = QPointF(11, 10.0)

    point_12 = QPointF(12, 5.0)

 

    point_list = [point_1, point_2, point_3, point_4, point_5, point_6, point_7, point_8, point_9, point_10, point_11,

                  point_12]  # 定义折线点清单

 

    series.append(pointlist)  # 折线添加坐标点

    series.setName(“温度曲线”)  # 折线命名

 

    # 4、添加曲线至窗口

    charView.chart().addSeries(series)

 

    # 5、显示

    window.show()

    sys.exit(app.exec())

小讯
上一篇 2025-05-09 12:16
下一篇 2025-06-09 08:47

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/185887.html