PySide\PyQt 如何设置QChart网格线的自定义频率和颜色

问题描述 投票:0回答:1

有一个简单的图表。 怎么做:

  1. 设置自定义网格线颜色。

  2. 默认情况下,在轴上的每个刻度线处绘制网格线。 我需要 X 轴上的标记,例如每 5 个点, 每个网格有 20 个点(如“图片”中所示)。

from PySide6.QtWidgets import QVBoxLayout, QApplication
from PySide6.QtCharts import QLineSeries, QChart, QChartView, QValueAxis
from PySide6.QtGui import QColor, QBrush
import sys
import math


class Chart1(QChart):
    def __init__(self):
        super().__init__()
        series = QLineSeries()
        x_axis = QValueAxis()
        y_axis = QValueAxis()
        self.setAxisX(x_axis)
        self.setAxisY(y_axis)
        self.legend().setVisible(False)
        for i in range (0, 100, 1):
            series.append(i, math.sin(i))
        self.addSeries(series)
        self.axisX().setRange(0, 100)
        self.axisY().setRange(-1,1)
        x_axis.setTickType(QValueAxis.TickType.TicksDynamic)
        x_axis.setTickInterval(20)
        y_axis.setTickType(QValueAxis.TickType.TicksDynamic)
        y_axis.setTickInterval(0.2)
        axis_brush = QBrush(QColor("white"))
        y_axis.setLabelsBrush(axis_brush)
        x_axis.setLabelsBrush(axis_brush)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    c1 = Chart1()
    chart_view = QChartView(c1)
    chart_view.chart().setBackgroundBrush(QBrush("black"))
    chart_view.show()
    sys.exit(app.exec())

enter image description here

我找不到任何关于这种可能性的讨论。

pyqt pyside qchart
1个回答
0
投票

ups,一切都变得非常简单。

网格颜色:

x_axis.setGridLineColor(QColor("red"))

轴上标记频率相同的更频繁的光栅

x_axis.setMinorTickCount(5)

© www.soinside.com 2019 - 2024. All rights reserved.