气轻PyQt5 38 QChart坐标轴,曲线颜色和宽度(QPen)
用QPen可以设置坐标轴,曲线的颜色和宽度等属性。
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 PyQt537(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle("chart")
self.resize(600, 400) # 设置窗口大小
cityName = ['北京', '天津', '上海', '南京', '杭州', '青岛', '广州', '深圳', '重庆', '成都']
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() # 图表组件
pens = QPen(QColor(0xFFA500)) # 曲线颜色
pens.setWidth(8) # 曲线宽度
spline = QSplineSeries() # 样条曲线
for i, value in enumerate(gdpData):
spline.append(i, value)
spline.setName("2018年部分城市GDP")
spline.setColor(Qt.blue)
spline.setPointsVisible(True) # 数据点可视
spline.setPointLabelsVisible(True) # 数据点坐标可视
spline.setPointLabelsFormat("(@xPoint, @yPoint)")
spline.setPointLabelsFont(QFont(None, 6))
spline.setPointLabelsColor(Qt.darkBlue)
spline.setPointLabelsColor(Qt.darkBlue)
spline.setPen(pens) # 设置曲线颜色和宽度
chart.addSeries(spline) # 添加Series
penx = QPen(QColor(0x1E90FF)) # X轴颜色
penx.setWidth(5) # X轴宽度
axis_x = QBarCategoryAxis() # 柱状图坐标
axis_x.append(cityName)
axis_x.setLinePen(penx) # 设置X轴颜色和宽度
axis_x.setTitleText("城市")
chart.addAxis(axis_x, Qt.AlignBottom)
spline.attachAxis(axis_x)
peny = QPen(QColor(0x8B7500)) # Y轴颜色
peny.setWidth(5) # Y轴宽度
axis_y = QValueAxis()
axis_y.setLabelFormat("%d")
axis_y.setRange(0, MaxGDP)
axis_y.setTitleText("亿元")
axis_y.setLinePen(peny) # 设置Y轴颜色和宽度
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 = PyQt537()
sys.exit(app.exec())
执行结果
