【WinForm】【C#】记录学习使用Chart控件制作折线图过程

记录学习使用Chart控件制作折线图过程,折线图中有当前值、目标值、上限值、下限值四条折线,使用定时器控件固定周期采样;

第一步:建立工程,工程框架建议在4.6或4.6以上,版本低了的话可能会没有Chart控件。

第二步:在工具箱找到对应控件添加到窗口中调整大小尺寸并修改名称,Chart控件-chart1,TextBox控件-TB_TargetValue、TB_UpperLimitValue、TB_LowerLimitValue,Button控件-BT_Start;

第三步:Chart控件的设置-Titles标题设置。根据需要建立表格标题和X轴、Y轴名称;

第四步:Chart控件设置-Series折线样式添加,根据需求添加当前值、目标值、上限值、下限值四条折线样式,“Line”是折线样式;

第五步:在工具箱中找到Time控件,双击添加;

第六步:双击窗口建立Form1_Load事件,输入代码(这部分代码完成窗口打开时对Chart控件的初始化设置);

private void Form1_Load(object sender, EventArgs e)
        {
            chart1.ChartAreas["ChartArea1"].AxisX.ScaleView.Size = 10;//x坐标显示的个数------------控制这个数量的大小进行缩放     
            chart1.ChartAreas[0].AxisX.LabelStyle.IntervalType = DateTimeIntervalType.Seconds;//设置x轴间隔值单位:秒
            chart1.ChartAreas[0].AxisX.LabelStyle.Interval = 1;//设置X轴的值的间隔大小
            chart1.ChartAreas[0].AxisX.LabelStyle.IsEndLabelVisible = false;//是否在轴末尾显示标记
            chart1.ChartAreas[0].AxisX.LabelStyle.Format = "HH:mm:ss.ff";//设置X轴的数据样式
            chart1.ChartAreas[0].AxisX.ScaleView.MinSizeType = DateTimeIntervalType.Seconds;
            chart1.ChartAreas[0].AxisX.ScaleView.SizeType = DateTimeIntervalType.Seconds; //度量单位
            chart1.ChartAreas[0].AxisX.ScaleView.SmallScrollMinSize = 1;
            chart1.ChartAreas[0].AxisX.ScaleView.SmallScrollMinSizeType = DateTimeIntervalType.Seconds;
            chart1.ChartAreas[0].AxisX.IntervalType = DateTimeIntervalType.Seconds;
            chart1.ChartAreas[0].AxisX.Enabled = AxisEnabled.True;//将X轴始终展示
            chart1.ChartAreas[0].AxisY.Enabled = AxisEnabled.True;//将Y轴始终展示
            chart1.ChartAreas[0].AxisX.MajorGrid.LineColor = Color.Gray;//设置X轴网格线颜色
            chart1.ChartAreas[0].AxisY.MajorGrid.LineColor = Color.Gray;//设置Y轴网格线颜色
            chart1.ChartAreas[0].AxisX.ScrollBar.Enabled = true;//关闭系统的滚动条,也可以不关闭,就可以滑动
            chart1.ChartAreas[0].AxisY.ScrollBar.Enabled = true;//关闭系统的滚动条,也可以不关闭,就可以滑动
            chart1.Series[0].BorderWidth = 2;//线宽
            chart1.Series[1].BorderWidth = 2;//线宽
            chart1.Series[2].BorderWidth = 2;//线宽
            chart1.Series[3].BorderWidth = 2;//线宽
        }

第七步:双击Time控件,建立timer1_Tick事件,并添加周期采样代码。

*注:此处“当前值”是建立了一个随机数方便测试;

        private void timer1_Tick(object sender, EventArgs e)
        {
            Random random = new Random();
            chart1.Series[0].Points.AddXY(DateTime.Now, random.Next(90, 110));
            chart1.Series[1].Points.AddXY(DateTime.Now, TB_TargetValue.Text);
            chart1.Series[2].Points.AddXY(DateTime.Now, TB_UpperLimitValue.Text);
            chart1.Series[3].Points.AddXY(DateTime.Now, TB_LowerLimitValue.Text);
            if (chart1.ChartAreas[0].AxisX.ScaleView.Size > 0)
            {
                chart1.ChartAreas[0].AxisX.ScaleView.Scroll(System.Windows.Forms.DataVisualization.Charting.ScrollType.Last);
            }
        }

第八步:双击Button开始采样按钮,建立BT_Start_Click事件并插入代码。

        private void BT_Start_Click(object sender, EventArgs e)
        {
            timer1.Enabled = !timer1.Enabled;
        }

第九步:生成解决方案

效果展示:

记录学习使用Chart控件制作折线图过程,折线图中有当前值、目标值、上限值、下限值四条折线,使用定时器控件固定周期采样;

  • 7
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
根据项目需求,需要在Qt中进行绘图显示我们的数据。这时候,我们就用到了Qt在5.0之后新增的自带QChart控件,不再需要我们自己再去添加第三方库。下面是详细的介绍~ 在.pro文件中 QT += charts 在.h文件中 //QChart #include <QtCharts> using namespace QtCharts; //定时器 #include <QTimer> private slots: void updata_plot(); void on_pushButton_clicked(); void on_pushButton_2_clicked(); private: //绘图定时器 QTimer *timer_plot; //曲线 QSplineSeries* line; //曲线点的最大数量 int line_max = 100; //绘图变量和坐标 QChart* chart; QValueAxis *axisX; QValueAxis *axisY; 在.cpp文件中 //将变量实例化 timer_plot = new QTimer(this); connect(timer_plot,SIGNAL(timeout()),this,SLOT(updata_plot())); line = new QSplineSeries(this); chart = new QChart(); chart->addSeries(line); axisX = new QValueAxis(this); axisY = new QValueAxis(this); //图像更新函数 void MainWindow::updata_plot() { QVector<QPointF> list; QVector<QPointF> newlist; list = line->pointsVector();//获取现在图中列表 if (list.size() < line_max) { //保持原来 newlist = list; } else { //错位移动 for(int i =1 ; i< list.size();i++) { newlist.append(QPointF(i-1,list.at(i).y())); } } newlist.append(QPointF(newlist.size(),rand()));//最后补上新的数据 line->replace(newlist);//替换更新 line->setName("pressure");//设置曲线名称 line->setPen(QColor(255, 0, 0));//设置曲线颜色 line->setUseOpenGL(true);//openGl 加速 chart->setTitle("Pressure Data");//设置图标标题 chart->removeSeries(line); chart->addSeries(line); chart->createDefaultAxes();//设置坐标轴 // axisX->setRange(0,line_max);//范围 // axisX->setTitleText("times(secs)");//标题 // axisX->setTickCount(10);//分隔个数 // axisX->setLineVisible(true);//可视化 // axisX->setLinePenColor(Qt::blue);//颜色 // axisY->setRange(-200,1200); // axisY->setTitleText("value"); // axisY->setTickCount(6); // axisY->setLineVisible(true); // axisY->setLinePenColor(Qt::blue); // chart->setAxisX(axisX,line); // chart->setAxisY(axisY,line); ui->widget_plot->setChart(chart); } void MainWindow::on_pushButton_clicked() { timer_plot->start(50);//启动定时器 } void MainWindow::on_pushButton_2_clicked() { timer_plot->stop();//关闭定时器 } 在.ui文件中
### 回答1: Winform中的Chart控件可以用来绘制曲线图。可以通过添加数据点和设置曲线的样式来绘制曲线图。还可以添加图例、坐标轴、标签等元素来美化图表。Chart控件支持多种曲线类型,如折线图、曲线图、散点图等。可以根据需要选择合适的曲线类型来展示数据。 ### 回答2: Winform中的Chart控件提供了一种非常便捷灵活的方式,用于展示各种形式的图表数据。而在其中,曲线图是使用最为频繁的一种,可以用于展示某一指标的变化趋势或者与时间相关的数据。下面我们就来看一下Winform中的Chart控件曲线图: 1. 准备数据:在使用Chart控件前需要准备好数据。曲线图的数据通常是X轴为时间,Y轴为数值,比如 客流量 / 财务数据 / 温度数据等等。不同的数据类型可以应用不同的数据结构,例如基于日期的时序数据可使用DateTime结构体,而基于数字类型的数据可以使用decimal、double或float数据类型。 2. 创建Chart控件:在Visual Studio工具箱中选择Chart控件,拖拽到窗口中即可。也可以在代码中实例化控件,进行自定义配置。 3. 添加Series:添加Series后需要配置Series的名称、X轴和Y轴的值类型等属性。 4. 添加数据点:添加数据点可用以下方式。a. 使用Series.Points.AddXY方法,按时间顺序依次添加数据点。b. 使用数据绑定技术,将Series.LinkXValues/YValuesToDataSource方法指向数据源。 5.配置Chart样式:可以修改Chart的Title、Axis和Legend等属性。例如:设置X轴和Y轴的范围、标题;设置Series的线条颜色、类型、宽度等。 6.添加交互事件:可以实现一些交互事件,例如鼠标拖拽、放大/缩小、悬浮提示等。 总之,Winform中的Chart控件曲线图是一种非常方便和实用的数据可视化方式。通过上述步骤,可以轻松将数据可视化并呈现出变化趋势和规律,更加直观地展示数据分析的结果。 ### 回答3: Winform中的Chart控件是一款可视化数据的控件,它可以用于生成线性曲线图、条形图、散点图、饼状图等各种类型的图表。其中最常用的是曲线图,因为曲线图可以呈现趋势、变化等信息。 在Winform中创建一个Chart控件很简单,只需在工具箱中将Chart拖到窗体上即可。然后我们就可以打开控件的设计器,在里面设置曲线图的参数和数据源。在“Series”属性中可以设置曲线图的标题、样式和数据源等。我们可以打开“Chart Type”属性,选择“SplineArea”以呈现平滑曲线。 在添加数据源时,我们可以通过手动添加、从文件读取或从数据库中读取数据来进行操作。例如,我们可以在代码中定义一个数组,将其作为曲线图的数据源。代码如下: ``` double[] yValues = { 10, 20, 30, 40, 50 }; this.chart1.Series["Series1"].Points.DataBindY(yValues); ``` 这段代码将一个长度为5的数组作为曲线图的数据源,并将其绑定到Series1上。我们还可以在Series属性中调整曲线的样式,如线条颜色、宽度、标记样式等。 除了基本的设置,Chart控件还提供了一些高级功能,如动态更新曲线、绘制多条曲线、自定义标签等。我们可以通过编写代码来实现这些功能,例如: ``` Random random = new Random(); for (int i = 0; i < 10; i++) { double yValue = random.NextDouble() * 100; this.chart1.Series["Series1"].Points.AddY(yValue); } ``` 这段代码将在曲线图上动态添加10个数据点,每个数据点的Y值是随机生成的。我们还可以通过添加多个数据源来绘制多条曲线,为曲线添加标签等。 总之,Winform中的Chart控件提供了丰富的功能和灵活的设置,可以满足不同场景下的曲线图需求。对于需要进行可视化数据处理的应用程序开发,Chart控件是一款非常有帮助的工具。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你好阿劲

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值