PyQt5+QtChart绘制散点图

PyQt5 QtChart-散点图

QScatterSeries类将数据以散点图显示

import sys
import random
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import Qt
from PyQt5.QtChart import QScatterSeries, QChart, QChartView, QPolarChart

class MyScatterWindow(QWidget):
    def __init__(self, parent=None):
        super(MyScatterWindow, self).__init__(parent)
        self.resize(800, 600)
        chart = QChart()
        chartView = QChartView()

        print(PYQT_VERSION_STR)

        scatter = QScatterSeries()
        for value in range(1, 500):
            scatter.append(value, random.random()*10)
            #scatter.append(QPointF(value, random.random()*10))

        scatter.setName("散点图")
        scatter.setMarkerSize(8)   # 标记大小
        # scatter.setMarkerShape(QScatterSeries.MarkerShapeRectangle) #方形标记
        scatter.setMarkerShape(QScatterSeries.MarkerShapeCircle) # 圆形标记
        pen = QPen()
        pen.setColor(Qt.red)
        pen.setWidth(2)
        scatter.setPen(pen)    

        chart.addSeries(scatter)
        chart.createDefaultAxes()

        chartView.setChart(chart)

        vbox = QVBoxLayout()
        vbox.addWidget(chartView)

        self.setLayout(vbox)

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

效果图

补充

除了散点图,PytQt5和QtChart还可以绘制其他的图表。下面是小编为大家整理的其他图表绘制的示例代码,需要的可以参考一下

PyQt5 QtChart-饼状图

QPieSeries类将数据以饼状图显示

import sys
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import Qt
from PyQt5.QtChart import QPieSeries, QPieLegendMarker, QChart, QChartView

class MyPieWindow(QWidget):
    def __init__(self, parent=None):
        super(MyPieWindow, self).__init__(parent)

        chart = QChart()
        chartView = QChartView()
        pieSeries = QPieSeries()

        slice0 = pieSeries.append("铁:%10", 1)
        pieSeries.append("铝:%20", 2)
        pieSeries.append("铜:%70", 7)
        pieSeries.setLabelsVisible()
        pieSeries.setPieSize(0.6)

        slice0.setExploded() # 外伸
        slice0.setColor(QColor(255, 0, 150))

        chart.setTitle("饼状图")
        chart.addSeries(pieSeries)

        chartView.setChart(chart)
        chartView.setRenderHint(QPainter.Antialiasing)

        vbox = QVBoxLayout()
        vbox.addWidget(chartView)
        self.setLayout(vbox)

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

PyQt5 QtChart-QLineSeries 折线图

QLineSeries

QLineSeries类将数据序列显示为折线图,其核心代码:

lineSeries = QLineSeries()
lineSeries.append(1, 3)
lineSeries.append(5, 8)

chart.addSeries(lineSeries)

常用方法:

  • setPointsVisible(True) :设置数据点显示状态
  • setPointLabelsVisible(True):设置数据点标签显示状态
  • setPointLabelsFormat(“(@xPoint, @yPoint)”):设置数据点标签格式
  • setPointLabelsFont(QFont(None, 8)) :设置数据点标签字体
  • setPointLabelsColor(QColor(255, 0,0)) :设置数据点标签颜色
import sys
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtChart import *

import random

class MyWaveWindow(QWidget):
    def __init__(self, parent=None):
        super(MyWaveWindow, self).__init__(parent)
        self.setWindowTitle("折线图")

        # 创建图表 并设置相关参数
        chart = QChart()
        chart.setTitle("随机折线图")
        chart.setAnimationOptions(QChart.SeriesAnimations)
        chart.setAnimationDuration(1000)
        chart.setAnimationEasingCurve(QEasingCurve.InOutCirc)
        # chart.setTheme(QChart.ChartThemeBlueCerulean)
        chart.legend().show()

        # 创建折线数据序列
        lineSeries = QLineSeries()
        for value in range(0, 100):
            lineSeries.append(value, round(random.random()*10, 2))

        lineSeries.setPointsVisible(True)
        lineSeries.setPointLabelsVisible(True)
        lineSeries.setPointLabelsFormat("(@xPoint, @yPoint)")
        lineSeries.setPointLabelsFont(QFont(None, 8))
        lineSeries.setPointLabelsColor(QColor(255, 0, 0))
        chart.addSeries(lineSeries)

        # 创建轴坐标
        # chart.createDefaultAxes()  # 创建默认轴
        axis_x = QValueAxis()
        axis_x.setLabelFormat("%d")
        axis_x.setMinorTickCount(3)
        axis_x.setRange(0, 100)
        chart.addAxis(axis_x, Qt.AlignBottom)
        lineSeries.attachAxis(axis_x)

        axis_y = QValueAxis()
        axis_y.setLabelFormat("%d")
        # axis_y.setTickType(QValueAxis.TicksDynamic)
        axis_y.setTickCount(20)
        axis_y.setMinorTickCount(3)
        axis_y.setRange(0, 10)
        chart.addAxis(axis_y, Qt.AlignLeft)
        lineSeries.attachAxis(axis_y)

        chartView = QChartView(chart)
        chartView.setRenderHint(QPainter.Antialiasing)

        layout = QVBoxLayout()
        layout.addWidget(chartView)
        self.setLayout(layout)
        self.resize(800, 600)

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

到此这篇关于PyQt5+QtChart绘制散点图的文章就介绍到这了,更多相关PyQt5 QtChart散点图内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们

(0)

相关推荐

  • python3+PyQt5实现柱状图

    本文通过Python3+pyqt5实现了python Qt GUI 快速编程的16章的excise例子. #!/usr/bin/env python3 import random import sys from PyQt5.QtCore import (QAbstractListModel, QAbstractTableModel, QModelIndex, QSize, QTimer, QVariant, Qt,pyqtSignal) from PyQt5.QtWidgets import (

  • Python绘制散点图之可视化神器pyecharts

    目录 散点图 什么是散点图? 散点图有什么用处? 散点图的基本构成要素 散点图模板系列 简单散点图 多维数据散点图 散点图显示分割线 散点图凸出大小(二维) 3D散点图展示 动态涟漪散点图 箭头标志散点图 散点图 什么是散点图? 散点图是指在数理统计回归分析中,数据点在直角坐标系平面上的分布图, 散点图​​表示因变量随自变量而变化的大致趋势,由此趋势可以选择合适的函数进行经验分布的拟合,进而找到变量之间的函数关系. 散点图有什么用处? 1.数据用图表来展示,显然比较直观,在工作汇报等场合能起到事

  • PyQt5结合matplotlib绘图的实现示例

    参考网上的例子,实现了简单的matplotlib pyqt5绘图 相关知识点:  (1)pyqt5中添加控件要在布局中添加  (2)布局可以使用replaceWidget替换控件  (3)信号与槽机制 timer = QtCore.QTimer(self) timer.timeout.connect(self.update_figure) self.btnPlot.clicked.connect(self.plotButton_callback) 实现的效果 import sys from Py

  • python scatter绘制散点图

    目录 参数 s 参数marker marker属性 参数cmap vmin,vmax,norm散点亮度设置, alpha透明度 用法: matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, *, edgecolors=None, plotnonfinite=False, data=No

  • PyQt5+QtChart实现柱状图的绘制

    目录 柱状图分类 实现代码 效果图 柱状图分类 QBarSeries:竖向柱状图 QPercentBarSeries:竖向百分比柱状图 QStackedBarSeries:竖向堆叠柱状图 QHorizontalBarSeries:横向柱状图 QHorizontalPercentBarSeries:横向百分比柱状图 QHorizontalStackedBarSeries:横向堆叠柱状图 实现代码 import sys from PyQt5.QtGui import * from PyQt5.QtC

  • pyqt5实现绘制ui,列表窗口,滚动窗口显示图片的方法

    1:listWidget 以滚动窗口显示文件下的所有文件: self.listWidget = QtWidgets.QListWidget(self.gridLayoutWidget) self.listWidget.setMaximumSize(QtCore.QSize(16777215, 400)) self.listWidget.setObjectName("listWidget") 以上代码都是以qtDesigner画出来自动生成的 self.listWidget.setVer

  • 在python中,使用scatter绘制散点图的实例

    如下所示: # coding=utf-8 import matplotlib.pyplot as plt x_values=[1,2,3,4,5] y_values=[1,4,9,16,25] # s为点的大小 plt.scatter(x_values,y_values,s=100) # 设置图表标题并给坐标轴加上标签 plt.title("Scatter pic",fontsize=24) plt.xlabel("Value",fontsize=14) plt.y

  • python matplotlib库绘制散点图例题解析

    假设通过爬虫你获取到了北京2016年3,10月份每天白天的最高气温(分别位于列表a,b),那么此时如何寻找出气温随时间(天)变化的某种规律? a = [11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,17,20,14,15,15,15,19,21,22,22,22,23] b = [26,26,28,19,21,17,16,19,18,20,20,19,22,23,17,20,21,20,22,15,11,15,5,13,17,10,11,

  • python学习之matplotlib绘制散点图实例

    要绘制单个点,可使用函数scatter(),并向其传递一对x和y坐标,它将在指定位置绘制一个点: """使用scatter()绘制散点图""" import matplotlib.pyplot as plt plt.scatter(2, 4) plt.show() 下面来设置输出的样式:添加标题,给轴加上标签,并确保所有文本都大到能够看清.并使用scatter()绘制一系列点 """使用scatter()绘制散点图&

  • python使用Plotly绘图工具绘制散点图、线形图

    今天在研究Plotly绘制散点图的方法,供大家参考,具体内容如下 使用Python3.6 + Plotly Plotly版本2.0.0 在开始之前先说说,还需要安装库Numpy,安装方法在我的另一篇博客中有写到:python3.6下Numpy库下载与安装图文教程 因为Plotly没有自己独立的线性图形函数,所以把线性图形与散点图形全部用一个函数实现 这个函数是Scatter函数 下面举几个简单的例子 先画一个纯散点图,代码如下: import plotly import plotly.graph

  • python绘制散点图并标记序号的方法

    实现二维平面上散点的绘制,并可以给每个散点标记序号或者名称: import numpy as np import matplotlib.pyplot as plt x=[2.3,4.5,3,7,6.5,4,5.3] y=[5,4,7,5,5.3,5.5,6.2] n=np.arange(7) fig,ax=plt.subplots() ax.scatter(x,y,c='r') for i,txt in enumerate(n): ax.annotate(txt,(x[i],y[i])) 以上这

  • python3使用matplotlib绘制散点图

    本文实例为大家分享了python3使用matplotlib绘制散点图,并标注图例,轴,供大家参考,具体内容如下 代码 from matplotlib import pyplot as plt from matplotlib import font_manager # 使得中文可以显示出来 my_font = font_manager.FontProperties(fname="/usr/share/fonts/truetype/arphic/ukai.ttc") y_3 = [11,

  • Matplotlib使用字符串代替变量绘制散点图的方法

    要点说明 在绘制散点图的时候,通常使用变量作为输入数据的载体. 其实,也可以使用字符串作为输入数据的存储载体. 下面代码的data = {"a": x, "b": y, "color": c, "size": s}正是将散点图的输入数据.颜色和标记大小放在数据字典data中作为键值对,对应的key是字符串string. Matplotlib编程实现 import matplotlib.pyplot as plt import

  • Python基于pandas绘制散点图矩阵代码实例

    1.示例 1 代码 import numpy as np import pandas as pd import matplotlib.pyplot as plt # 生成数据 v1 = np.random.normal(0, 1, 100) v2 = np.random.randint(0, 23, 100) v3 = v1 * v2 # 3*100 的数据框 df = pd.DataFrame([v1, v2, v3]).T # 绘制散点图矩阵 pd.plotting.scatter_matr

随机推荐