当前位置: 首页 > news >正文

n8n工作流自动化平台的实操:生成统计图的两种方式

1.成果展示

1.1n8n的工作流

 牵涉节点:Postgres、Code、QuickChart、Edit Fields、HTTP Request

12.显示效果

 

 

2.实操过程

2.1节点说明

2.1.1Postgres节点:

注:将明细数据进行汇总。 

2.1.2code节点:

注:将 查询的数据转换成QuickChart需要的格式,代码如下:

let data = $input.all();
let rawData = data.map(item => item.json);// 按年份分组数据
const groupedData = rawData.reduce((acc, item) => {if (!acc[item.nf]) acc[item.nf] = [];acc[item.nf].push({ month: item.yf, value: parseInt(item.sl) });return acc;
}, {});// 构建完整的12个月份列表,作为 X 轴标签
const allMonths = Array.from({ length: 12 }, (_, i) => {const month = (i + 1).toString().padStart(2, '0'); // 01 - 12return month;
});// 构建 QuickChart 需要的 chartData 格式
const chartData = {type: 'line',data: {labels: allMonths, // 使用完整12个月作为 X 轴datasets: Object.keys(groupedData).map(year => {// 补全缺失月份的数据为 null(图表上该点为空)const values = allMonths.map(month => {const found = groupedData[year].find(d => d.month === month);return found ? found.value : null;});return {label: `${year}年 事故起数`,data: values,borderColor: getRandomColor(),fill: false,pointRadius: values.map(v => v !== null ? 3 : 0), // 可选:隐藏空值点};})},options: {responsive: true,scales: {xAxes: [{scaleLabel: {display: true,labelString: '月份'}}],yAxes: [{ticks: {beginAtZero: true},scaleLabel: {display: true,labelString: '事故起数'}}]}}
};// 随机颜色生成函数
function getRandomColor() {const r = Math.floor(Math.random() * 256);const g = Math.floor(Math.random() * 256);const b = Math.floor(Math.random() * 256);return `rgba(${r},${g},${b},1)`;
}return chartData;

2.1.3Edit Fields节点:

注:将json对象转换成字符串,主要图中的红框。 

2.1.4HTTP Request节点:

 

注:通过https://quickchart.io/chart?width=650&height=450&c={{ $json.data }}实现图片的生成,图中红框部分。

通过 QuickChart节点,最后也是转成url地址。因此不能在无互联网的环境下生成图片,希望有缘人提供更好的思路。

2.1.5QuickChart节点:

注:生成单曲线,单柱状图,通过 QuickChart节点没有问题,如果有上传多条曲线,则无法实现,只能通过https://quickchart.io/chart?width=650&height=450&c={{ $json.data }}方式实现。

相关文章:

  • QT数据库实验
  • AVL树(2):
  • 性能优化实践:渲染性能优化
  • Python|Pyppeteer实现自动登录小红书(32)
  • 蓝桥杯15届国赛 合法密码
  • 基于 ESP32 和 GC9D01 0.71寸TFT屏幕的逼真眼睛与写轮眼动态显示
  • 2025年- H26-Lc134- 226. 翻转二叉树(树)---java版
  • 《AI大模型应知应会100篇》第48篇:构建企业级大模型应用的架构设计
  • STM32教程:ADC原理及程序(基于STM32F103C8T6最小系统板标准库开发)*详细教程*
  • 01背包专题4:小A点菜
  • Q_OBJECT宏的作用
  • 深度学习中保存最优模型的实践与探索:以食物图像分类为例
  • 【nlohmann\json.hpp】‘_snprintf‘: is not a member of ‘std‘
  • Uni-app 组件使用
  • Git 远程操作
  • 二叉搜索树的最近祖先(递归遍历)
  • 《工业社会的诞生》章节
  • 信息系统监理师第二版教材模拟题第二组(含解析)
  • 【锂电池剩余寿命预测】RF随机森林锂电池剩余寿命预测(Pytorch完整源码和数据)
  • 移动 Trae 目录到 E 盘 - 解决 C 盘空间不足问题
  • 马上评|“景区陪爬”能成为新职业吗?
  • 新势力4月销量出炉:零跑逾4万辆再夺冠,蔚来环比增近六成,小米下滑
  • 阿斯利康中国区一季度收入增5%,或面临最高800万美元新罚单
  • 体坛联播|欧冠半决赛阿森纳主场不敌巴黎,北京男篮险胜山西
  • 五一假期上海地铁部分线路将延时运营,这些调整请查收
  • 习近平访问金砖国家新开发银行