我的编程空间,编程开发者的网络收藏夹
学习永远不晚

PyQt5+QtChart实现绘制极坐标图

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

PyQt5+QtChart实现绘制极坐标图

散点极坐标图

import sys
import random
import math

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

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

        # 创建图表
        polarChart = QPolarChart()
        chartView = QChartView()

        # 创建Series
        scatterSeries = QScatterSeries()

        # 添加数据
        for value in range(1, 50):
            scatterSeries.append(value, random.random()*10)
            #scatterSeries.append(QPointF(value, random.random()*10))
        
        scatterSeries.setMarkerSize(10)
        scatterSeries.setColor(Qt.red)
        scatterSeries.setBorderColor(Qt.yellow)
        scatterSeries.setMarkerShape(QScatterSeries.MarkerShapeCircle)  # 圆形标记
        # scatterSeries.setMarkerShape(QScatterSeries.MarkerShapeRectangle) # 方形标记        
        scatterSeries.setName("星位图")

        polarChart.addSeries(scatterSeries)
        polarChart.setContentsMargins(0, 0, 0, 0)
        polarChart.setTheme(QChart.ChartThemeBlueCerulean)
        # polarChart.createDefaultAxes()


        # 设置 角向轴
        angularAxis = QValueAxis()
        angularAxis.setTickCount(9)
        angularAxis.setLabelFormat("%.2f")
        angularAxis.setShadesVisible(True)
        angularAxis.setShadesBrush(QBrush(QColor(230, 230, 255)))
        polarChart.addAxis(angularAxis, QPolarChart.PolarOrientationAngular)
        angularAxis.setRange(0, 20) # 必须设置范围,否则图表无法显示

        # 设置 径向轴
        radialAxis = QValueAxis()
        radialAxis.setTickCount(5)
        radialAxis.setLabelFormat("%d")
        polarChart.addAxis(radialAxis, QPolarChart.PolarOrientationRadial)
        radialAxis.setRange(0, 10)
        
        chartView.setChart(polarChart)
        chartView.setFocusPolicy(Qt.NoFocus)
        chartView.setRenderHint(QPainter.Antialiasing)

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

        # polarChart.zoomOut()
        # polarChart.zoomIn()
        # polarChart.scroll(-1.0, 0)
        # polarChart.scroll(1.0, 0)
        # polarChart.scroll(0, 1.0)
        # polarChart.scroll(0, -1.0)

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

折线极坐标图

import sys
import random
import math

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

class MyPolarWindow(QWidget):
    def __init__(self, parent=None):
        super(MyPolarWindow, self).__init__(parent)
        self.setWindowTitle("散点极坐标图")
        # 创建图表
        polarChart = QPolarChart()
        chartView = QChartView()

        # 创建Series
        scatterSeries = QLineSeries()

        # 添加数据
        for value in range(1, 50):
            scatterSeries.append(value, random.random()*10)
            #scatterSeries.append(QPointF(value, random.random()*10))
        

        scatterSeries.setName("折线极坐标图")

        polarChart.addSeries(scatterSeries)
        polarChart.setContentsMargins(0, 0, 0, 0)
        polarChart.setTheme(QChart.ChartThemeBlueCerulean)
        # polarChart.createDefaultAxes()


        # 设置 角向轴
        angularAxis = QValueAxis()
        angularAxis.setTickCount(9)
        angularAxis.setLabelFormat("%.2f")
        angularAxis.setShadesVisible(True)
        angularAxis.setShadesBrush(QBrush(QColor(230, 230, 255)))
        polarChart.addAxis(angularAxis, QPolarChart.PolarOrientationAngular)
        angularAxis.setRange(0, 20) # 必须设置范围,否则图表无法显示

        # 设置 径向轴
        radialAxis = QValueAxis()
        radialAxis.setTickCount(5)
        radialAxis.setLabelFormat("%d")
        polarChart.addAxis(radialAxis, QPolarChart.PolarOrientationRadial)
        radialAxis.setRange(0, 10)
        
        chartView.setChart(polarChart)
        chartView.setFocusPolicy(Qt.NoFocus)
        chartView.setRenderHint(QPainter.Antialiasing)

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

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

曲线极坐标图

import sys
import random
import math

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

class MyPolarWindow(QWidget):
    def __init__(self, parent=None):
        super(MyPolarWindow, self).__init__(parent)
        self.setWindowTitle("散点极坐标图")
        # 创建图表
        polarChart = QPolarChart()
        chartView = QChartView()

        # 创建Series
        scatterSeries = QSplineSeries()

        # 添加数据
        for value in range(1, 50):
            scatterSeries.append(value, random.random()*10)
            #scatterSeries.append(QPointF(value, random.random()*10))
        

        scatterSeries.setName("曲线极坐标图")

        polarChart.addSeries(scatterSeries)
        polarChart.setContentsMargins(0, 0, 0, 0)
        polarChart.setTheme(QChart.ChartThemeBlueCerulean)
        # polarChart.createDefaultAxes()


        # 设置 角向轴
        angularAxis = QValueAxis()
        angularAxis.setTickCount(9)
        angularAxis.setLabelFormat("%.2f")
        angularAxis.setShadesVisible(True)
        angularAxis.setShadesBrush(QBrush(QColor(230, 230, 255)))
        polarChart.addAxis(angularAxis, QPolarChart.PolarOrientationAngular)
        angularAxis.setRange(0, 20) # 必须设置范围,否则图表无法显示

        # 设置 径向轴
        radialAxis = QValueAxis()
        radialAxis.setTickCount(5)
        radialAxis.setLabelFormat("%d")
        polarChart.addAxis(radialAxis, QPolarChart.PolarOrientationRadial)
        radialAxis.setRange(0, 10)
        
        chartView.setChart(polarChart)
        chartView.setFocusPolicy(Qt.NoFocus)
        chartView.setRenderHint(QPainter.Antialiasing)

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

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

区域极坐标图

import sys
import random
import math

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

class MyPolarWindow(QWidget):
    def __init__(self, parent=None):
        super(MyPolarWindow, self).__init__(parent)
        self.setWindowTitle("区域极坐标图")
        # 创建图表
        polarChart = QPolarChart()
        chartView = QChartView()

         # 创建Series
        series0 = QLineSeries()
        series1 = QLineSeries()

        # 添加数据
        series0 << QPointF(1, 5) << QPointF(3, 7) << QPointF(7, 6) << QPointF(9, 7) \
        << QPointF(12, 6) << QPointF(16, 7) << QPointF(18, 5)
        series1 << QPointF(1, 3) << QPointF(3, 4) << QPointF(7, 3) << QPointF(8, 2) \
        << QPointF(12, 3) << QPointF(16, 4) << QPointF(18, 3)

        # 创建区域图
        area = QAreaSeries(series0, series1)
        area.setName("折线极坐标图")

        polarChart.addSeries(area)
        polarChart.setContentsMargins(0, 0, 0, 0)
        polarChart.setTheme(QChart.ChartThemeBlueCerulean)
        # polarChart.createDefaultAxes()


        # 设置 角向轴
        angularAxis = QValueAxis()
        angularAxis.setTickCount(9)
        angularAxis.setLabelFormat("%.2f")
        angularAxis.setShadesVisible(True)
        angularAxis.setShadesBrush(QBrush(QColor(230, 230, 255)))
        polarChart.addAxis(angularAxis, QPolarChart.PolarOrientationAngular)
        angularAxis.setRange(0, 50) # 必须设置范围,否则图表无法显示

        # 设置 径向轴
        radialAxis = QValueAxis()
        radialAxis.setTickCount(5)
        radialAxis.setLabelFormat("%d")
        polarChart.addAxis(radialAxis, QPolarChart.PolarOrientationRadial)
        radialAxis.setRange(0, 20)
        
        chartView.setChart(polarChart)
        chartView.setFocusPolicy(Qt.NoFocus)
        chartView.setRenderHint(QPainter.Antialiasing)

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

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

以上就是PyQt5+QtChart实现绘制极坐标图的详细内容,更多关于PyQt5 QtChart极坐标图的资料请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

PyQt5+QtChart实现绘制极坐标图

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

PyQt5+QtChart实现绘制极坐标图

QChart是一个QGraphicScene中可以显示的QGraphicsWidget。本文将利用QtChart实现极坐标图的绘制,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
2022-12-16

PyQt5+QtChart实现绘制曲线图

QChart是一个QGraphicScene中可以显示的QGraphicsWidget。本文将利用QtChart实现曲线图的绘制,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
2022-12-15

PyQt5+QtChart实现绘制区域图

QChart是一个QGraphicScene中可以显示的QGraphicsWidget。本文将利用QtChart实现区域图的绘制,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
2022-12-16

PyQt5+QtChart实现柱状图的绘制

QChart是一个QGraphicScene中可以显示的QGraphicsWidget。本文将利用QtChart实现柱状图的绘制,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
2022-12-15

Matlab实现极坐标堆叠柱状图的绘制

极坐标堆叠图也是风玫瑰图的常用形式,MATLAB的bar绘制的条形图可以绘制成堆叠形式,但是并没有一个自带函数可以绘制极坐标堆叠图。本文将为大家提供Matlab绘制极坐标堆叠柱状图的示例代码,需要的可以参考一下
2022-11-13

C#中如何使用DevExpress的ChartControl实现极坐标图

今天小编给大家分享一下C#中如何使用DevExpress的ChartControl实现极坐标图的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一
2023-06-29

Python绘图实现坐标轴共享与复用详解

本指南详细介绍了在Python中使用Matplotlib库共享和复用坐标轴。涵盖了通过twinx()和twiny()函数实现坐标轴共享以及使用subplot()函数实现坐标轴复用的方法。示例演示了如何使用这些技术创建更复杂且有用的图表。还讨论了共享和复用坐标轴的优点和局限性。
Python绘图实现坐标轴共享与复用详解
2024-04-02

Qt如何实现实时鼠标绘制图形

小编给大家分享一下Qt如何实现实时鼠标绘制图形,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!展示效果功能实现想要实现鼠标拖拽绘图的效果,离不开鼠标的三大事件:按下、移动、释放那么具体实现实时绘制矩形框的核心流程是什么呢?第
2023-06-29

HTML5 画布标签的绘制技巧大揭秘:轻松实现图形效果

HTML5 画布标签 (canvas) 提供了强大的图形绘制功能,可用于创建各种图形效果。本文将深入探讨画布标签的绘制技巧,从基本形状绘制到高级图形效果,帮助您轻松实现创意设计。
HTML5 画布标签的绘制技巧大揭秘:轻松实现图形效果
2024-02-25

Android百度地图实现搜索和定位及自定义图标绘制并点击时弹出泡泡

一、问题描述上一次我们使用百度地图实现基本的定位功能,接下来我们继续实现搜索和定位,并使用LocationOverlay绘制定位位置,同时展示如何使用自定义图标绘制并点击时弹出泡泡如图所示:二、编写MyApplication类public
2022-06-06

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录