气轻PyQt5 35 QChart坐标轴(QValueAxis)
在【气轻PyQt5 34】中制作了一条曲线,但纵坐标的数据显示似乎有些问题。为了改善显示效果对纵坐标进行了QValueAxis设置。axis_y.setLabelFormat("%d")中的"%d"有许多变化,与c语言中的函数fprintf的格式类似,比如%4.2f等等。
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtChart import QSplineSeries, QLineSeries, QChart, QChartView, QValueAxis, QBarCategoryAxis
from math import ceil
import sys
class PyQt535(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle("chart")
self.resize(600, 400) # 设置窗口大小
gdpData = [30319.98, 18809.64, 32679.87, 12820.4, 13509.15,
12001.52, 22859.35, 24221.98, 20363.19, 15342.77]
MaxGDP = ceil(max(gdpData)/9)*10
chart = QChart() # 图表组件
chart.setTitle("GDP")
spline = QSplineSeries() # 样条曲线
for i, value in enumerate(gdpData):
spline.append(i, value)
spline.setName("2018年部分城市GDP")
spline.setColor(Qt.blue)
chart.addSeries(spline) # 添加Series
axis_y = QValueAxis()
axis_y.setLabelFormat("%d")
axis_y.setRange(0, MaxGDP)
axis_y.setTitleText("亿元")
chart.addAxis(axis_y, Qt.AlignLeft)
spline.attachAxis(axis_y)
chartView = QChartView() # 视图组件
chartView.setChart(chart) # 显示chart
self.setCentralWidget(chartView)
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
window = PyQt535()
sys.exit(app.exec())
执行结果
