Qt随手笔记(四)QtChart画曲线图

//画图*************************************************************
	QChart* chart = new QChart(); //创建 Chart

	
	//chart->setTitle("平滑曲线");			// 设置标题
	chart->setTheme(QChart::ChartThemeQt);	// 设置主题风格
	chart->legend()->hide();				//隐藏图例


	QValueAxis* xAxis = new QValueAxis();	//定义X坐标轴
	QValueAxis* yAxis = new QValueAxis();	//定义Y坐标轴

	
	QFont labelsFont;			   //设置坐标轴字体
	labelsFont.setPixelSize(12);   //参数字号,数字越小,字就越小

	//设置坐标轴
	xAxis->setTickCount(10);		  //设置坐标轴间隔,刻度个数
	xAxis->setMinorTickCount(1);	  // 次刻度和次网格线设置
	xAxis->setRange(0.000, 0.900);	  //坐标轴范围
	xAxis->setLabelFormat("%.3f");    //设置刻度的格式,整数形式
	xAxis->setLabelsFont(labelsFont); //设置坐标轴字体

	yAxis->setTickCount(13);		  //刻度个数,
	xAxis->setMinorTickCount(1);	  // 次刻度和次网格线设置
	yAxis->setRange(0, 13);		  //坐标轴范围
	yAxis->setLabelFormat("%d");	  //设置刻度的格式,整数形式
	yAxis->setLabelsFont(labelsFont); //设置坐标轴字体


	// 添加曲线和数据
	QSplineSeries *splineSeries = new QSplineSeries();
	splineSeries->append(0.20, 5);
	splineSeries->append(0.30, 6);
	splineSeries->append(0.40, 7);
	splineSeries->append(0.50, 4);
	splineSeries->append(0.60, 6);
	splineSeries->append(0.80, 7);

	

	// 设置显示坐标点
	splineSeries->setPointLabelsClipping(false);
	splineSeries->setPointLabelsVisible(true);
	splineSeries->setPointLabelsFormat("(@xPoint,@yPoint)");

	//将设置的坐标轴添加到chart中
	chart->addAxis(xAxis, Qt::AlignBottom);
	chart->addAxis(yAxis, Qt::AlignLeft);

	chart->addSeries(splineSeries); //将曲线添加到chart中
	//chart->createDefaultAxes();  //使用默认坐标轴

	//绑定曲线和坐标轴(该语句必须在将曲线和坐标轴添加到chart后)
	splineSeries->attachAxis(xAxis);
	splineSeries->attachAxis(yAxis);


	ui->Dynamic_chart->setChart(chart);	// 显示到界面上
	ui->Dynamic_chart->setRenderHint(QPainter::RenderHint::Antialiasing);	// 设置抗锯齿
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyQt5.QtChart 是 PyQt5 中的一个模块,它提供了一些强大的图表组件,可以帮助我们快速实现各种类型的图表,包括动态曲线图。 下面是一个简单的示例,演示如何使用 PyQt5.QtChart 实现动态曲线图: ```python from PyQt5.QtWidgets import QApplication, QMainWindow, QGridLayout, QWidget from PyQt5.QtChart import QChart, QChartView, QLineSeries from PyQt5.QtCore import Qt, QTimer import random class MainWindow(QMainWindow): def __init__(self): super().__init__() # 创建曲线图曲线 self.chart = QChart() self.series = QLineSeries() self.chart.addSeries(self.series) # 设置图表标题和坐标轴标签 self.chart.setTitle("Dynamic Curve") self.chart.setAnimationOptions(QChart.SeriesAnimations) self.chart.createDefaultAxes() self.chart.axes()[0].setTitleText("X") self.chart.axes()[1].setTitleText("Y") # 创建图表视图 self.chart_view = QChartView(self.chart) self.chart_view.setRenderHint(QPainter.Antialiasing) # 创建布局并添加图表视图 layout = QGridLayout() layout.addWidget(self.chart_view) # 创建窗口并设置布局 central_widget = QWidget() central_widget.setLayout(layout) self.setCentralWidget(central_widget) # 创建定时器并连接到更新函数 self.timer = QTimer(self) self.timer.timeout.connect(self.update_plot) self.timer.start(50) # 初始化计数器和数据列表 self.count = 0 self.data = [] def update_plot(self): # 更新计数器和数据列表 self.count += 1 self.data.append(random.randint(0, 100)) # 更新曲线数据 self.series.clear() for i in range(len(self.data)): self.series.append(i, self.data[i]) # 设置坐标轴范围 self.chart.axisX().setRange(max(0, self.count-100), self.count) self.chart.axisY().setRange(0, 100) if __name__ == '__main__': app = QApplication([]) window = MainWindow() window.show() app.exec_() ``` 在这个例子中,我们创建了一个 QMainWindow 窗口,并在其中添加了一个 QChartView 视图,用于显示动态曲线图。我们还创建了一个 QTimer 定时器,并将其连接到 update_plot() 函数,以定期更新曲线图的数据。 在 update_plot() 函数中,我们生成一个随机数,并将其添加到数据列表中。然后,我们清除曲线的所有数据,重新将数据添加到曲线中。最后,我们根据数据的数量调整坐标轴的范围。 请注意,我们使用了一个计数器来记录数据的数量,以便我们可以根据需要滚动我们的曲线图。在这个例子中,我们每次只显示最近的 100 个数据点。 运行这个示例程序,你将会看到一个动态曲线图,显示随机生成的数值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值