如下,当X轴大于20时,Y轴为数据为空,如何在图上显示出来?
但不能显示为0
import sys
from PyQt5.QtGui import QPainter
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.QtChart import QChart, QChartView, QLineSeries
class DemoChartLineSeries(QMainWindow):
def __init__(self, parent=None):
super(DemoChartLineSeries, self).__init__(parent)
# 设置窗口标题
self.setWindowTitle('QChart折线图演示')
# 设置窗口大小
self.resize(480, 360)
self.createChart()
def createChart(self):
#设置折线数据
lineSeries = QLineSeries()
lineSeries.append(0, 6)
lineSeries.append(2, 4)
lineSeries.append(3, 8)
lineSeries.append(7, 4)
lineSeries.append(10, 5)
lineSeries.append(11, 1)
lineSeries.append(13, 3)
lineSeries.append(17, 6)
lineSeries.append(18, 3)
lineSeries.append(20, 2)
# lineSeries.append(21, None)
# lineSeries.append(22, None)
# lineSeries.append(23, None)
#创建图表
chart = QChart()
chart.legend().hide()
chart.addSeries(lineSeries)
chart.createDefaultAxes()
chart.setTitle('一个简单的折线图示例')
#图表视图
chartView = QChartView(chart)
chartView.setRenderHint(QPainter.Antialiasing)
self.setCentralWidget(chartView)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = DemoChartLineSeries()
window.show()
sys.exit(app.exec())
判断下,如果没有数据,就将那个点设置为空白
参考GPT和自己的思路:
可以在需要显示为空的地方添加 None 值,然后使用 setPointLabelsVisible() 方法将其对应的数据点标签隐藏。例如,将代码 lineSeries.append(21, None) 改为 lineSeries.append(21, None).setPointLabelsVisible(False)。这样,即使没有数据,该点也会被显示,但是没有数据点标签。
不知道你这个问题是否已经解决, 如果还没有解决的话: