You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 09:13:30