网站首页 > 编程文章 正文
一些成指数变化的数据,在图表中需要使用对数坐标轴显示。QChart提供列QLogValueAxis来实现对数坐标轴。
QLogValueAxis
QLogValueAxis类将对数刻度添加到图表的坐标轴。对数刻度是基于数量级的非线性刻度,因此轴上的每个刻度线都是前一个刻度线乘以一个值。
注意: 如果图表序列中的有小于或等于0的值,则不会绘制该图表序列。
QLogValueAxis常用函数:
- setBase(self,base):设置对数坐标轴的底数,该值必须大于0,且不能等于1。
- setLabelFormat(self, format):设置为坐标轴创建标签时使用的格式字符串。
- setMax(self, max):设置坐标轴的最大值。
- setMin(self, min):设置坐标轴的最小值。
- setRange(self, min, max):设置坐标轴值的范围。
- setMinorTickCount(self, count):设置坐标轴上次刻度线的数量。
QLogValueAxis常用信号:
- baseChanged(self, base): 当由base指定的坐标轴底数发生了改变,将发出此信号。
- labelFormatChanged(self, format):当由format指定的坐标轴标签使用的显示格式发生了改变,将发出此信号。
- maxChanged(self, max):当max指定坐标轴的最大值发生了变化,将发出此信号。
- minChanged(self, min):当由min指定坐标轴的最小值发生了变化,将发出此信号。
- rangeChanged(self, min, max):当由min和max指定的坐标轴的最大值或最小值发生了改变,将发出此信号。
- minorTickCountChanged(self, minorTickCount):当由minorTickCount指定的坐标轴上的次刻度线数量改变时,将发出此信号。
- tickCountChanged(self, tickCount):当由tickCount指定的坐标轴上的刻度线数量改变时,将发出此信号。
QLogValueAxis示例
示例显示了如何使用QLogValueAxis。 完整代码如下:
import sys
from PyQt5.QtCore import Qt, QPointF
from PyQt5.QtGui import QPainter
from PyQt5.QtWidgets import QApplication, QMainWindow, QMessageBox
from PyQt5.QtChart import QChart, QChartView, QLineSeries, QLogValueAxis, QValueAxis
class DemoLogValueAxis(QMainWindow):
def __init__(self, parent=None):
super(DemoLogValueAxis, self).__init__(parent)
# 设置窗口标题
self.setWindowTitle('实战 Qt for Python: 对数值坐标轴演示')
# 设置窗口大小
self.resize(480, 360)
self.createChart()
def createChart(self):
#设置折线数据
lineSeries = QLineSeries()
lineSeries.append(QPointF(1.0, 1.0))
lineSeries.append(QPointF(2.0, 73.0))
lineSeries.append(QPointF(3.0, 268.0))
lineSeries.append(QPointF(4.0, 17.0))
lineSeries.append(QPointF(5.0, 4325.0))
lineSeries.append(QPointF(6.0, 723.0))
#创建图表
chart = QChart()
chart.legend().hide()
chart.addSeries(lineSeries)
chart.setTitle('对数值坐标示例')
#坐标轴
axisX = QValueAxis()
axisX.setLabelFormat('%i')
axisX.setTitleText('数据点')
axisX.setTickCount(len(lineSeries))
chart.addAxis(axisX, Qt.AlignBottom)
lineSeries.attachAxis(axisX)
axisY = QLogValueAxis() #对数值坐标
axisY.setLabelFormat('%g')
axisY.setTitleText('值')
axisY.setBase(8.0)
axisY.setMinorTickCount(-1)
chart.addAxis(axisY, Qt.AlignLeft)
lineSeries.attachAxis(axisY)
#图表视图
chartView = QChartView(chart)
chartView.setRenderHint(QPainter.Antialiasing)
self.setCentralWidget(chartView)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = DemoLogValueAxis()
window.show()
sys.exit(app.exec())
运行结果如下图:
本文知识点
- 了解QLogValueAxis, 使用对数坐标的图标序列的值不能小于或等于0。
- 如何在图表中使用对数坐标轴。
请多多关注,评论,收藏,点赞,和转发。
猜你喜欢
- 2024-09-11 Qt开发-文本编辑器中的数据存取(qt文本编辑器代码)
- 2024-09-11 Qt数据库应用15-通用数据库同步(qt的数据库操作)
- 2024-09-11 开源|一个基于QT设计串口调试工具
- 2024-09-11 第23天 | 28天学会PyQt5,多行文本框
- 2024-09-11 PyQt: QAbstractButton开关按钮与互斥的用法
- 2024-09-11 第6篇 基础(六)实现Qt文本编辑功能
- 2024-09-11 实战PyQt5: 003-PyQt的信号和槽机制简介
- 2024-09-11 Qt开发经验小技巧181-185(qt软件开发)
- 2024-09-11 Qt开发经验总结之武林秘籍(qt开发程序)
- 2024-09-11 Qt状态机框架介绍(二)(状态机编程实例及适用范围)
你 发表评论:
欢迎- 05-142014年最流行前端开发框架对比评测
- 05-14七爪源码:如何使用 Next.js 构建 Shopify 店面
- 05-14Web 前端怎样入门?
- 05-14我为什么不建议你使用框架
- 05-14推荐几个好用的React UI 框架
- 05-14PDFsharp:强大的 .NET 跨平台 PDF 处理库
- 05-14一组开源免费的Web动画图标,荐给需要的设计师和程序员
- 05-14salesforce 零基础学习(二十九)Record Types简单介绍
- 最近发表
- 标签列表
-
- spire.doc (59)
- system.data.oracleclient (61)
- 按键小精灵源码提取 (66)
- pyqt5designer教程 (65)
- 联想刷bios工具 (66)
- c#源码 (64)
- graphics.h头文件 (62)
- mysqldump下载 (66)
- sqljdbc4.jar下载 (56)
- libmp3lame (60)
- maven3.3.9 (63)
- 二调符号库 (57)
- 苹果ios字体下载 (56)
- git.exe下载 (68)
- diskgenius_winpe (72)
- pythoncrc16 (57)
- solidworks宏文件下载 (59)
- qt帮助文档中文版 (73)
- satacontroller (66)
- hgcad (64)
- bootimg.exe (69)
- android-gif-drawable (62)
- axure9元件库免费下载 (57)
- libmysqlclient.so.18 (58)
- springbootdemo (64)
本文暂时没有评论,来添加一个吧(●'◡'●)