Grafana图表工具Graph使用教程-通过Grafana绘制折线图

篇前指导

Excel数据导入Mysql

将excel表格数据导入Mysql新建表中_excel导入mysql自己创建表-CSDN博客

Grafana连接数据源数据库

Grafana如何接入mysql数据库_grafana 怎么连接mysql-CSDN博客

新建Dashboard

新建panel

首次点击New Dashboard后,会自动进入以下页面,点击新建panel,创建数据面板。

新创建的数据面板,默认选择的就是Graph图形可视化样式。

主要分为视图展示区、数据库连接和sql编辑区、面板设置区,为了尽快展示图形,我们先操作数据库连接和sql编辑区。

数据库编辑区操作

检查数据库选择

缺省为default,如果安装grafana后,只连接了一个数据库,那基本上这里不用设置,如果有多个数据库,点击下拉框,选择其它数据库。

编写调取数据的sql语句

在sql编辑区点击小铅笔,切换至sql编辑模式

graph的 time_sec、value、metric是必须要返回的三个字段。

先来看下我们准备的数据库结构

我们将date作为时间排序、每天的price_closed作为value、crypto作为metric,输入语句如下。

SELECT
  date AS time_sec,
  price_closed as value,
  crypto as metric 
FROM btc_price
WHERE
  $__timeFilter(date)
ORDER BY 1,2 desc  //添加2排序,否则,面板中的悬浮信息,将会是反的。

输入完成后,在视图区将展示数据折线图。通过右上角的时间区间选择,可以展示不同周期的价格走势,我们选择了近1年的区间,如图展示如下。

选择5年的数据展示一下。

问题来了,面板上的标题怎么来的,我的为啥是panel title。

编辑面板名称

最后别忘了保存。

右侧的图表设置区域怎么使用,我们用专门一篇文章来介绍。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
当使用Qt来绘制折线图时,有多种方式可以实现。以下是两种常见的绘制折线图的方法: 方法一:使用QCustomPlot库 QCustomPlot是一个基于Qt的绘图库,可以用于创建各种类型的图表,包括折线图。你可以按照以下步骤使用QCustomPlot来绘制折线图: 1. 在Qt项目中添加QCustomPlot库,可以通过在.pro文件中添加`QT += customplot`来导入库。 2. 创建一个QWidget或QMainWindow作为绘图区域。 3. 在绘图区域中创建一个QCustomPlot对象。 4. 添加坐标轴和网格线。 5. 使用addGraph函数添加折线图数据。 6. 使用setData函数设置折线图的数据。 7. 调用replot函数刷新绘图。 以下是一个示例代码,演示了使用QCustomPlot库绘制折线图: ```cpp #include <QApplication> #include <QWidget> #include "qcustomplot.h" int main(int argc, char *argv[]) { QApplication app(argc, argv); QWidget window; window.resize(500, 300); window.setWindowTitle("折线图示例"); QCustomPlot *customPlot = new QCustomPlot(&window); customPlot->setGeometry(10, 10, 480, 280); QVector<double> xData = {1, 2, 3, 4, 5}; QVector<double> yData = {1, 4, 9, 16, 25}; QCPGraph *graph = customPlot->addGraph(); graph->setData(xData, yData); customPlot->xAxis->setLabel("X轴"); customPlot->yAxis->setLabel("Y轴"); customPlot->xAxis->setRange(0, 6); customPlot->yAxis->setRange(0, 30); customPlot->replot(); window.show(); return app.exec(); } ``` 方法二:使用QPainter绘制 另一种常见的方法是使用Qt的绘图类QPainter手动绘制折线图。你可以按照以下步骤使用QPainter来绘制折线图: 1. 创建一个QWidget或QMainWindow作为绘图区域。 2. 在绘图区域中重写paintEvent函数。 3. 在paintEvent函数中创建一个QPainter对象。 4. 使用QPainter的绘图函数绘制坐标轴、网格线和折线。 5. 调用QWidget的update函数刷新绘图。 以下是一个示例代码,演示了使用QPainter绘制折线图: ```cpp #include <QApplication> #include <QWidget> #include <QPainter> void drawLineChart(QPainter *painter, const QVector<double> &xData, const QVector<double> &yData) { painter->setRenderHint(QPainter::Antialiasing, true); // 绘制坐标轴 painter->drawLine(50, 250, 450, 250); // x轴 painter->drawLine(50, 250, 50, 50); // y轴 // 绘制网格线(可选) painter->setPen(QPen(Qt::gray, 1, Qt::DotLine)); for (int i = 1; i <= 4; ++i) { int y = 250 - i * 50; painter->drawLine(50, y, 450, y); // 横向网格线 } painter->setPen(QPen(Qt::black, 2)); // 绘制折线 for (int i = 0; i < xData.size() - 1; ++i) { int x1 = 50 + xData[i] * 80; int y1 = 250 - yData[i] * 10; int x2 = 50 + xData[i + 1] * 80; int y2 = 250 - yData[i + 1] * 10; painter->drawLine(x1, y1, x2, y2); } } class ChartWidget : public QWidget { public: ChartWidget(QWidget *parent = nullptr) : QWidget(parent) {} protected: void paintEvent(QPaintEvent *event) override { Q_UNUSED(event); QPainter painter(this); QVector<double> xData = {1, 2, 3, 4, 5}; QVector<double> yData = {1, 4, 9, 16, 25}; drawLineChart(&painter, xData, yData); } }; int main(int argc, char *argv[]) { QApplication app(argc, argv); ChartWidget window; window.resize(500, 300); window.setWindowTitle("折线图示例"); window.show(); return app.exec(); } ``` 以上示例代码演示了如何使用QPainter手动绘制折线图。在ChartWidget类中,我们重写了paintEvent函数,在其中创建一个QPainter对象,并调用drawLineChart函数来绘制折线图。 无论你选择使用QCustomPlot库还是QPainter,都可以绘制出漂亮的折线图。你可以根据自己的需求选择适合的方法。 希望这能帮助到你。如果还有疑问,请随时提问。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

慎思知行

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

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值