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

如何在PySide6中隐藏图例框?遇图例隐藏致坐标轴消失问题

Qt Charts隐藏图例导致坐标轴消失的解决方法

我这里有一个QtGraphs绘制的图表

问题:

  • 移除setName仅能隐藏图例名称,调用chart.legend().hide()却会同时导致图表坐标轴消失
  • 官方文档中未找到明确说明的对应隐藏函数

你的代码:

# Add Federal Reserve Data
unemployment_data = pandas.DataFrame.from_dict({u'2012-06-08': 388,
u'2012-06-09': 388,
u'2012-06-10': 388,
u'2012-06-11': 389,
u'2012-06-12': 389,
u'2012-07-05': 392,
u'2012-07-06': 392}, orient='index', columns=['foo'])
self.unemployment_chart = QLineSeries()
for date, value in unemployment_data.items():
    date = QDateTime(date).toSecsSinceEpoch()
    print(date, value)
    self.unemployment_chart.append(date, value)
chart2 = QChart()
chart2.setTitle('Unemployment')
chart2.addSeries(self.unemployment_chart)
#        chart2.createDefaultAxes()
chartView2 = QChartView(chart2)
grid_box.addWidget(chartView2, 0, 1)
# Formatting for Date / DateTime Data
axis_x = QDateTimeAxis()
axis_x.setFormat("yyyy-MM-dd")
axis_x.setTitleText("Date")
chart2.setAxisX(axis_x)
self.unemployment_chart.attachAxis(axis_x)

问题原因

你注释了chart2.createDefaultAxes(),且仅手动配置了X轴,未处理Y轴。当调用legend().hide()触发图表布局重排时,未被显式配置的Y轴会被隐藏,最终看起来所有坐标轴都消失了。

解决方法

两种可行方案:

方案1:恢复自动创建坐标轴

取消注释chart2.createDefaultAxes(),让图表自动生成Y轴,之后再隐藏图例:

chart2.addSeries(self.unemployment_chart)
chart2.createDefaultAxes()  # 取消注释这行
# 配置X轴
axis_x = QDateTimeAxis()
axis_x.setFormat("yyyy-MM-dd")
axis_x.setTitleText("Date")
chart2.setAxisX(axis_x)
self.unemployment_chart.attachAxis(axis_x)
# 隐藏图例
chart2.legend().hide()

方案2:手动创建并关联Y轴

在配置X轴后,手动添加Y轴并关联到系列,再隐藏图例:

# 配置X轴后添加以下代码
axis_y = QValueAxis()
axis_y.setTitleText("Unemployment Value")
chart2.setAxisY(axis_y)
self.unemployment_chart.attachAxis(axis_y)
# 隐藏图例
chart2.legend().hide()

内容的提问来源于stack exchange,提问作者David Frick

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 01:24:55