PYR-202410 2024-12-01 18:10 采纳率: 82.5%
浏览 6
已结题

PyQt5.QtChart没有正常工作咋办?

我使用以下代码绘制折线图:

chart = QtChart.QChart()
                chart.setTitle("分数曲线")
                chart.setAnimationOptions(QtChart.QChart.SeriesAnimations)
                chart.legend().hide()
                
                series = QtChart.QLineSeries()
                for index,(title,grade) in enumerate(map(lambda x:(x.title,x.getExamGrade()),hisExamData.getHisExamList())):
                    series.append(float(index),float(grade))
                series.setName("分数曲线")
                chart.addSeries(series)
                
                x_Aix = QtChart.QValueAxis()#定义x轴,实例化
                x_Aix.setRange(1,10) #设置量程
                x_Aix.setLabelFormat("%0.2f")#设置坐标轴坐标显示方式,精确到小数点后两位
                x_Aix.setTickCount(10)#设置x轴有几个量程
                x_Aix.setMinorTickCount(1)#设置每个单元格有几个小的分级
                series.attachAxis(x_Aix)
        
                y_Aix = QtChart.QValueAxis()#定义y轴
                y_Aix.setRange(0.0,120.0)
                y_Aix.setLabelFormat("%0.2f")
                y_Aix.setTickCount(10)
                y_Aix.setMinorTickCount(0)
                series.attachAxis(y_Aix)
                
                x_Aix.setGridLineVisible(True)
                y_Aix.setGridLineVisible(True)
                
                chart.setAxisX(x_Aix)
                chart.setAxisY(y_Aix)
                self.gradeChartView.setChart(chart)
                self.gradeChartView.setRenderHint(QtGui.QPainter.Antialiasing)

我插入的数据是x=[0,1],y=[8,6],可是展示的:

img

  • 写回答

2条回答 默认 最新

  • stormsha 优质创作者: 编程框架技术领域 2024-12-01 18:42
    关注

    本答案参考GPT。若问题解决,望采纳;如仍有疑问,请评论回复。

    根据您提供的代码和描述,您在使用PyQt5的QtChart模块绘制折线图时遇到了问题。从您提供的代码来看,代码本身没有明显的语法错误,但是您提到的问题可能是由于以下几个原因导致的:

    1. 数据插入错误:您提到插入的数据是x=[0,1],y=[8,6],但是在代码中,您是通过遍历hisExamData.getHisExamList()来获取数据并插入到折线图中的。请确保hisExamData.getHisExamList()返回的数据格式是正确的,并且确实是您想要展示的数据。

    2. 坐标轴范围设置:您设置了x_Aix.setRange(1, 10),这意味着x轴的范围是从1到10。如果您的数据x值不在该范围内,它们将不会被正确显示。您需要根据实际的数据范围来调整坐标轴的范围。

    3. 坐标轴标签格式:您设置了x_Aix.setLabelFormat("%0.2f"),这意味着x轴的标签将以浮点数的形式显示,保留两位小数。如果您的x值是整数,这可能导致显示问题。

    4. 坐标轴刻度数量:您设置了x_Aix.setTickCount(10)y_Aix.setTickCount(10),这意味着x轴和y轴将分别有10个刻度。如果数据点的数量少于10个,这可能导致显示问题。

    5. 图表视图设置:请确保self.gradeChartView已经被正确初始化,并且是一个QChartView的实例。

    针对上述问题,您可以尝试以下步骤来解决:

    • 确认hisExamData.getHisExamList()返回的数据格式和内容。
    • 根据实际数据调整坐标轴的范围。
    • 检查坐标轴标签格式是否与数据类型匹配。
    • 调整坐标轴刻度数量以适应数据点的数量。
    • 确保self.gradeChartView已经被正确初始化。

    如果上述步骤仍然无法解决问题,您可能需要提供更多的上下文信息,例如hisExamData.getHisExamList()的返回值,以及self.gradeChartView的初始化代码,以便进一步分析问题。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月9日
  • 已采纳回答 12月1日
  • 创建了问题 12月1日