如何在PySide6中隐藏图例框?遇图例隐藏致坐标轴消失问题
Qt Charts隐藏图例导致坐标轴消失的解决方法

问题:
- 移除
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
相关产品推荐
相关产品推荐

