#include "demo_01.h"#include <QtCharts>
using namespace QtCharts;#include <QVBoxLayout>
#include <QTimer>double gX = 0;
double gY = 0;
QVector<QPointF> gPts;demo_01::demo_01(QWidget *parent): QWidget(parent)
{//创建图表QChartView* chartView = new QChartView(this);QChart* chart = new QChart();chart->setTitle(QStringLiteral("简单曲线"));chartView->setChart(chart);chartView->setRenderHint(QPainter::Antialiasing);//创建折线序列QLineSeries* series0 = new QLineSeries();series0->setName(QStringLiteral("sin曲线"));//设置线条颜色,粗细QPen pen;pen.setColor(Qt::red);pen.setWidth(2);series0->setPen(pen);chart->addSeries(series0);//序列添加数值/*  double t = 0, y1, y2, intv = 0.1;int cnt = 100;for (int i = 0; i < cnt; i++) {y1 = qSin(t);series0->append(t, y1);y2 = qSin(t + 20);series1->append(t, y2);t += intv;}*///创建坐标轴QValueAxis* axisX = new QValueAxis;axisX->setRange(0, 10);axisX->setTitleText("time(secs)");axisX->setLabelFormat("%.2f s");  ///>坐标轴上显示的坐标保留2位小数axisX->setTickCount(5);        ///>设置坐标轴主刻度的个数,简单理解为垂直线有n条axisX->setMinorTickCount(4);    ///>次刻度线条数axisX->setLabelsAngle(30);      ///>设置标签角度,单位为度axisX->setGridLineColor(Qt::blue);QValueAxis* axisY = new QValueAxis;axisY->setRange(-2, 2);axisY->setTitleText("value");//为序列设置坐标轴
#if 0 // 方式1chart->setAxisX(axisX, series0);chart->setAxisY(axisY, series0);chart->setAxisX(axisX, series1);chart->setAxisY(axisY, series1);
#else // 方式2chart->addAxis(axisX, Qt::AlignBottom);chart->addAxis(axisY, Qt::AlignLeft);series0->attachAxis(axisX);series0->attachAxis(axisY);
#endif//图例是一个QLegend类的对象,通过QChart::legend()可以获得图表的图例。可以修改图例的一些属性,如位置、字体等chart->legend()->setVisible(true);chart->legend()->setAlignment(Qt::AlignRight);//设置序列或坐标轴的动画效果chart->setAnimationOptions(QChart::AnimationOption::GridAxisAnimations);//关于图表外观的设置QFont font;font.setPixelSize(16);chart->setTitleFont(font);chart->setTitleBrush(Qt::blue);//主题是预定义的图表配色样式,是QChart::ChartTheme枚举类型,有多种取值,使图表具有不同的配色效果chart->setTheme(QChart::ChartTheme::ChartThemeBlueCerulean);gPts.reserve(20000);//动态刷新曲线series0->append(0, 0);QTimer* timer = new QTimer(this);connect(timer, &QTimer::timeout, [=]{qreal dwidth = chart->plotArea().width() / (axisX->tickCount() * 4.0); //一次滚动多少宽度qreal dx = 10.0 / (axisX->tickCount() * 4.0); //横坐标偏移量gX += dx;for (double i = gX - dx; i < gX; i+=0.1) {gY = sin(i);gPts.append(QPointF(i, gY));}series0->replace(gPts);/*满屏之后滚动窗口*/if (gX > 10)chart->scroll(dwidth, 0); //dwidth 代表的窗口横坐标方向滚动的区域大小//dwidth 的单位不是横坐标的单位,而是窗口像素});timer->start(500);//布局QVBoxLayout* mainLayout = new QVBoxLayout(this);mainLayout->addWidget(chartView);this->setMinimumSize(1024, 768);
}

#include "demo_02.h"#include <QtCharts>
using namespace QtCharts;#include <QVBoxLayout>demo_02::demo_02(QWidget *parent): QWidget(parent)
{QChartView* chartView = new QChartView(this);QChart* chart = new QChart;chartView->setChart(chart);//[] 设置主题放在这里,后面的外观设置就可以生效chart->setTheme(QChart::ChartTheme::ChartThemeDark);//[] chartViewchartView->setMinimumSize(1024, 768);chartView->setRenderHint(QPainter::RenderHint::Antialiasing);//[] seriesQPieSeries* series = new QPieSeries(this);series->setHoleSize(0.2); ///> 设置饼图中心空间的大小auto slice1 = series->append("pieslice_1", 55);auto slice2 = series->append("pieslice_2", 25);auto slice3 = series->append("pieslice_3", 15);auto slice4 = series->append("pieslice_4", 27);auto slice5 = series->append("pieslice_5", 120); slice1->setColor(Qt::red);slice1->setLabel("pieslice_1 sfas fdas");slice1->setLabelColor(Qt::red);slice1->setLabelFont(QFont("", 16));slice1->setLabelPosition(QPieSlice::LabelPosition::LabelOutside);QTimer* timer = new QTimer(this);connect(timer, &QTimer::timeout, [=]{slice1->setValue(slice1->value() + 1);slice1->setLabel(QString::number(slice1->value()));});timer->start(666);for (auto slice : series->slices()) {connect(slice, &QPieSlice::hovered, [=](bool show){ slice->setExploded(show); });}series->setLabelsVisible(true);//[] chartchart->addSeries(series);chart->legend()->setAlignment(Qt::AlignBottom);chart->legend()->setVisible(true);QVBoxLayout* mainLayout = new QVBoxLayout(this);mainLayout->addWidget(chartView);
}

QtCharts 折线、饼图代码相关推荐

  1. python画折线图代码-python绘制简单折线图代码示例

    1.画最简单的直线图 代码如下: import numpy as np import matplotlib.pyplot as plt x=[0,1] y=[0,1] plt.figure() plt ...

  2. python画折线图详解-python绘制简单折线图代码示例

    1.画最简单的直线图 代码如下: import numpy as np import matplotlib.pyplot as plt x=[0,1] y=[0,1] plt.figure() plt ...

  3. python画折线图代码实现_python如何绘制分布折线图 python绘制分布折线图代码示例...

    python如何绘制分布折线图?本篇文章小编给大家分享一下python绘制分布折线图代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 用Pyth ...

  4. python画折线图虚线_python绘制简单折线图代码示例

    1.画最简单的直线图 代码如下: import numpy as np import matplotlib.pyplot as plt x=[0,1] y=[0,1] plt.figure() plt ...

  5. python画折线图-python绘制简单折线图代码示例

    1.画最简单的直线图 代码如下: import numpy as np import matplotlib.pyplot as plt x=[0,1] y=[0,1] plt.figure() plt ...

  6. Matplotlib绘制折线图、散点图、柱状图、直方图、饼图代码

    一.折线图 以折线的上升或下降来表示统计数量的增减变化的统计图 特点:能够显示数据的变化趋势,反映事物的变化情况(变化) 函数:plt.plot(x, y) import matplotlib.pyp ...

  7. (一)ComponentOne之WebChart(饼图)(代码示例下载)

    饼图(形状如像切割后的蛋糕) (一).配置 1.安装好ComponentOne软件. 2.建立一个WEB应用程序项目,名称为: 饼图示例 3.将ComponentOne软件自带的控件集DLL文件(不一 ...

  8. python画折线图代码-python编程:如何使用python代码绘制折线图?

    推荐 (此处已添加圈子卡片,请到今日头条客户端查看) 折线图: import pandas as pd import matplotlib.pyplot as plt women_degrees = ...

  9. python画折线图代码-用Python画论文折线图、曲线图?几个代码模板轻松搞定!

    前言 这几天在搞论文图,唉说实话抠图这种东西真能逼死人.坐在电脑前抠上一天越看越丑,最后把自己丑哭了-- 到了画折线图分析的时候,在想用哪些工具的时候.首先否决了excel,读书人的事,怎么能用exc ...

  10. python画折线图代码-Python绘制折线图和散点图的详细方法介绍(代码示例)

    本篇文章给大家带来的内容是关于Python绘制折线图和散点图的详细方法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.绘制折线图和散点图要用到matplotlib ...

最新文章

  1. 【错误记录】Android 应用安装后出现两个启动图标 ( 排查应用及依赖库中配置了 android.intent.category.LAUNCHER 的 Activity )
  2. 基于深度学习的多目标跟踪:从UMA Tracker出发谈谈SOT类MOT算法
  3. IDA来远程调试Linux程序
  4. 【转】VS2013中如何解决error C4996: 'fopen'问题
  5. python 社区网络转化_python-将numpy打开网格转换为坐标
  6. ASP.Net2.0小技巧 保持滚动条的位置 焦点移动到某个控件 $符号轻松的使用FindControl...
  7. 带你了解数仓安全测试的TLS协议
  8. iOS开发之SQLite的Object-C封装
  9. linux系统移植和根文件系统制作
  10. 安卓资源字串中加全角空格、半角空格、换行、@%等特殊字符
  11. mac mysql客户端工具 知乎_Mac OS X 平台上有哪些好用且免费的MySQL客户端工具?
  12. 城通网盘仿蓝奏网盘源码
  13. Zemax自学--2(Zemax软件总览)
  14. 如何在 HTML 中将表格居中
  15. 神器 git clean
  16. 【手把手教你】使用qstock实现量化策略选股
  17. Linux_Learning_兄弟连
  18. 女码农献丑-企业智能机器人客服(图灵机器人)
  19. vmware 上网问题解决
  20. 《Android开发卷——实时监听文本框输入》

热门文章

  1. JavaScript Object 对象方法总结
  2. Android 播放多媒体文件:音乐和视频
  3. 混合溶剂中的高分子凝胶中的渗透压的一般计算
  4. 十进制 -> N进制 写法 -- Java
  5. sa结构组网方式_NSA和SA两种组网方式均为5G
  6. android apktool反编译,apktool反编译工具
  7. java 特殊字符分割_java字符串分割处理split及特殊符号
  8. 使用JS快速读取TXT文件
  9. Word文档怎样转化为pdf格式
  10. An动画基础之元件的影片剪辑效果