QChart如何隐藏网格与数值刻度?仅保留折线显示
如何隐藏QChart的网格和数值刻度,仅显示折线?
要实现只显示折线,只需对QChart自动生成的坐标轴做隐藏设置即可,以下是修改后的可运行代码:
import sys from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QChartView from PyQt5.QtCharts import QChart, QSplineSeries from PyQt5.QtGui import QPainter, QPointF class myChard(QChartView): def __init__(self): super().__init__() self.resize(300, 300) self.setRenderHint(QPainter.Antialiasing) chart = QChart() self.setChart(chart) # 不需要标题的话可以删掉下面这句,或者注释隐藏 chart.setTitle('Simple splinechart example') self.getSeries(chart) chart.createDefaultAxes() chart.legend().setVisible(False) # 获取X轴并隐藏相关元素 x_axis = chart.axes()[0] x_axis.setVisible(False) # 隐藏刻度、刻度线、轴线 x_axis.setGridLineVisible(False) # 隐藏网格线 # 获取Y轴并隐藏相关元素 y_axis = chart.axes()[1] y_axis.setVisible(False) y_axis.setGridLineVisible(False) def getSeries(self, chart): series = QSplineSeries(chart) series.append([QPointF(1,1),QPointF(3,1),QPointF(999,1)]) chart.addSeries(series) class Window(QWidget): def __init__(self): super().__init__() muChart=myChard() layout2 = QVBoxLayout() layout2.addWidget(muChart) self.setLayout(layout2) self.setWindowTitle("Border Layout") if __name__ == "__main__": app = QApplication(sys.argv) window = Window() window.show() sys.exit(app.exec())
核心设置要点:
- 调用
chart.createDefaultAxes()生成坐标轴后,通过chart.axes()获取X、Y轴对象 axis.setVisible(False)会一次性隐藏坐标轴的刻度标签、刻度线和轴线,直接达到只显示折线的效果- 如果只需要隐藏网格线但保留刻度,单独使用
axis.setGridLineVisible(False)即可
内容的提问来源于stack exchange,提问作者manuel dextre
相关产品推荐
相关产品推荐

