本文目录导读:

- 方案一:Python + Matplotlib(最通用,适合数据分析、后端生成图片)
- 方案二:JavaScript + ECharts(最炫酷,适合网页前端展示)
- 方案三:Shell + gnuplot(最轻量,适合Linux服务器、Cron定时任务)
- 方案四:纯 SQL + 数据库自带功能(最简单,适合DB可视化)
- 如何选择?
- 额外建议:如何“用AI”写图表脚本?
制作“图表生成脚本”取决于你使用的编程语言和应用场景(是网页前端展示,还是后端生成图片,或是自动化办公)。
这里提供四种最主流、最实用的方案,你可以根据需求选择:
Python + Matplotlib(最通用,适合数据分析、后端生成图片)
这是数据分析师和程序员最常用的组合,能生成高质量的矢量图或位图。
核心库: matplotlib, pandas, numpy
示例脚本(生成柱状图和折线图):
import matplotlib.pyplot as plt
import pandas as pd
# 1. 准备数据
data = {
'月份': ['1月', '2月', '3月', '4月', '5月'],
'销售额': [120, 190, 110, 210, 160]
}
df = pd.DataFrame(data)
# 2. 创建画布
plt.figure(figsize=(10, 6), dpi=100)
# 3. 绘制柱状图
plt.bar(df['月份'], df['销售额'], color='skyblue', label='月销售额')
# 4. 添加标题和标签'2024年上半年销售趋势', fontsize=16)
plt.xlabel('月份', fontsize=12)
plt.ylabel('销售额 (万元)', fontsize=12)
# 5. 显示数据标签
for i, v in enumerate(df['销售额']):
plt.text(i, v + 2, str(v), ha='center', va='bottom')
# 6. 显示图例
plt.legend()
# 7. 保存到本地(关键步骤)
plt.savefig('销售图表.png', dpi=300, bbox_inches='tight')
# 8. 显示(如果在Jupyter或脚本中运行)
plt.show()
print("图表已生成:销售图表.png")
运行方式: python your_script.py
适用场景: 数据分析报告、自动化报表、邮件附件图表。
JavaScript + ECharts(最炫酷,适合网页前端展示)
如果你开发网页,ECharts 是首选,交互性强,支持海量数据。
核心库: ECharts (CDN 或 npm)
示例脚本(HTML文件):
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />ECharts 图表脚本</title>
<!-- 引入 ECharts -->
<script src="https://cdn.jsdelivr.net/npm/echarts@5/dist/echarts.min.js"></script>
</head>
<body>
<!-- 准备一个容器 -->
<div id="main" style="width: 800px;height:500px;"></div>
<script type="text/javascript">
// 1. 初始化图表实例
var myChart = echarts.init(document.getElementById('main'));
// 2. 配置项
var option = {
title: {
text: '网站用户访问量',
left: 'center'
},
tooltip: {
trigger: 'axis'
},
xAxis: {
type: 'category',
data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
},
yAxis: {
type: 'value'
},
series: [
{
name: '访问量',
type: 'line', // 改成 'bar' 就是柱状图
data: [820, 932, 901, 934, 1290, 1330, 1320],
smooth: true,
lineStyle: { width: 3 }
}
]
};
// 3. 渲染图表
myChart.setOption(option);
// 4. 让图表自适应窗口大小
window.addEventListener('resize', function() {
myChart.resize();
});
</script>
</body>
</html>
运行方式: 直接用浏览器打开 HTML 文件。 适用场景: 数据看板、管理后台、实时监控大屏。
Shell + gnuplot(最轻量,适合Linux服务器、Cron定时任务)
如果你不想装Python,服务器上只有Shell环境,gnuplot是非常强大的选择。
示例脚本(chart.gp):
# 设置输出格式为PNG
set terminal pngcairo size 800,600 enhanced font 'Verdana,10'
set output 'performance_chart.png'
和轴'服务器CPU使用率 (%)'
set xlabel '时间'
set ylabel '使用率'
set xdata time
set timefmt "%H:%M"
set format x "%H:%M"
# 绘制数据文件
plot 'data.txt' using 1:2 with lines title 'CPU-1' linewidth 2, \
'' using 1:3 with lines title 'CPU-2' linewidth 2
假设 data.txt 内容为:
09:00 45 50
09:05 48 55
09:10 52 60
运行命令: gnuplot chart.gp
适用场景: 服务器运维监控、定时生成性能报告。
纯 SQL + 数据库自带功能(最简单,适合DB可视化)
很多数据库支持直接生成图表(如 Grafana、Superset、或数据库控制台)。
示例(MySQL Workbench / Grafana):
- 写一个SQL脚本查询数据:
SELECT DATE(created_at) as day, COUNT(*) as user_count FROM users GROUP BY day ORDER BY day; - 在工具中直接选择“Chart”或“Bar”类型。
适用场景: 数据库管理员快速查看趋势。
如何选择?
| 你的角色 / 场景 | 推荐方案 |
|---|---|
| 数据分析师 / 科研 | Python + Matplotlib |
| 前端开发者 / 网页展示 | JavaScript + ECharts |
| 运维工程师 / 自动化脚本 | Shell + gnuplot |
| 只想快速看个图 | Excel / 数据库自带工具 |
额外建议:如何“用AI”写图表脚本?
你可以把需求直接发给 AI(比如我),
“用Python的matplotlib,帮我写一个脚本,读取一个CSV文件(列名为date和revenue),生成带网格线的折线图,并保存为PDF。”
我会直接生成完整可运行的代码。
需要我为你针对特定的数据格式或业务需求写一个脚本吗? 请告诉我数据来源(数据库、CSV、JSON)和想用的语言。