【DeepSeek应用】Deepseek R1 本地部署(Ollama+Docker+OpenWebUI)
【DeepSeek应用】DeepSeek 搭建个人知识库(Ollama+CherryStudio)
【DeepSeek应用】用 DeepSeek 轻松玩转可视化图表(1)
【DeepSeek应用】用 DeepSeek 轻松玩转可视化图表(2)
【DeepSeek应用】用 DeepSeek 轻松玩转可视化图表(1)
1. 为什么用 Deepseek 制作可视化图表
在数据驱动的时代,图表已成为表达观点、支持决策的必备工具。传统数据可视化的痛点在于,学习门槛高,维护成本大、交互能力弱。
目前,DeepSeek Chat 还不支持直接绘制图表、输出图像,但可以生成 图表代码,复制这些代码到在本地环境运行,就生成可视化图表。此外,一些第三方工具和软件(如 VS Code、Mermaid、Cherry Studio)可以结合 DeepSeek 生成的结构化文本或代码,进一步渲染成可视化图表。
基于 Deepseek 制作可视化图表带来变革,让我们可以“一句话生成专业图表”。
- 自然语言驱动:只需描述需求,自动生成图表
- 多输出模式:支持HTML、Python代码、Mermaid流程图、企业级BI仪表盘
- 无缝衔接工作流:一键嵌入报告、PPT,或对接数据平台
为了便于读者学习,我们还是继续使用 “CherryStudio + 硅基流动/Deepseek API” 作为工具示范本文部内容。CherryStudio 是一款 AI 助手平台, 硅基流动平台 提供了 DeepSeek 模型的接入服务,适合需要稳定性和多样化模型的用户。使用邀请码 SM5lc4SJ 注册 硅基流动平台,即可获赠 2000 万 Tokens!
关于 “CherryStudio + 硅基流动/Deepseek API” 的安装使用,请参见我的博客 【DeepSeek应用】DeepSeek 搭建个人知识库(Ollama+CherryStudio)。
2. Deepseek 生成 HTML 制作可视化图表
传统的 HTML/JavaScript 图表开发面临技术门槛高、调试周期长的困难。基于 Deepseek 自动生成 HTML 代码,支持通过自然语言指令直接生成交互式可视化代码,快速生成可嵌入网页、博客或PPT 的动态图表,不仅显著降低了技术门槛,而且极大地提高了开发效率,特别适用于快速构建可交互数据看板。
Deepseek-HTML 自动生成方案的典型工作流程包含以下步骤:
- 数据需求描述:用户输入结构化需求说明,推荐采用"图表类型+数据特征+样式需求"的表述方式。
- 代码自动生成:系统自动生成完整 HTML/CSS/JavaScript 代码包,包含模块化封装的图表组件和详细的 API 注释。
- 迭代优化:用户可以通过补充指令进行功能扩展或样式微调。
2.1 自然语言指令生成可视化图表
直接通过文本描述数据内容和需求,生成 HTML 代码。
- 输入自然语言指令
明确数据、图表类型和交互需求。
示例指令:
“用折线图展示三种产品 A、B、C 在 2024年每月销售额,X轴为月份,Y轴为金额(万元),浅色背景,图表宽度占满容器。数据要有起伏。请生成HTML代码。”
- 获取 Deepseek 生成的 HTML 代码
系统自动输出完整代码如下。
<!DOCTYPE html>
<html>
<head>
<title>2024年A/B/C产品月销售额</title>
<!-- 引入 Plotly -->
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
<style>
body {
margin: 0;
padding: 20px;
font-family: Arial, sans-serif;
}
#chart {
width: 100%;
height: 500px;
background: #f9f9f9;
border-radius: 8px;
padding: 15px;
box-sizing: border-box;
}
</style>
</head>
<body>
<h2>2024年产品A/B/C销售额趋势(万元)</h2>
<div id="chart"></div>
<script>
// 模拟数据(每月随机的销售额)
const months = ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'];
const data = {
"A": [25, 32, 28, 35, 40, 38, 42, 50, 45, 55, 60, 65],
"B": [15, 20, 25, 30, 22, 28, 35, 40, 38, 42, 45, 50],
"C": [10, 12, 15, 18, 22, 25, 30, 28, 32, 35, 38, 40]
};
// 创建图表
const traces = [
{
x: months,
y: data["A"],
name: '产品A',
mode: 'lines+markers',
line: {
color: '#4285F4', width: 3 },
marker: {
size: 8 }
},
{
x: months,
y: data["B"],
name: '产品B',
mode: 'lines+markers',
line: {
color: '#EA4335', width: 3 },
marker: {
size: 8 }
},
{
x: months,
y: data["C"],
name: '产品C',
mode: 'lines+markers',
line: {
color: '#FBBC05', width: 3 },
marker: {
size: 8 }
}
];
const layout = {
plot_bgcolor: '#f9f9f9',
paper_bgcolor: '#f9f9f9',
margin: {
l: 60, r: 30, t: 50, b: 50 },
xaxis: {
title: '月份', gridcolor: '#ddd' },
yaxis: {
title: '销售额(万元)', gridcolor: '#ddd' },
legend: {
orientation: 'h', x: 0.3, y: 1.2 },
hovermode: 'closest'
};
// 绘制图表
Plotly.newPlot('chart', traces, layout);
// 自适应窗口大小
window.addEventListener('resize', function() {
Plotly.Plots.resize('chart');
});
</script>
</body>
</html>
如果直接在浏览器中向 Deepseek 提出这个问题,Deepseek 还会提示:“你可以直接复制这段代码保存为 .html 文件后用浏览器打开,或者嵌入到你的网页中。如需修改数据,只需调整 data.datasets[0].data 数组中的数值即可。”
如果我们使用 "CherryStudio + 硅基流动/Deepseek API " 的聊天助手,则会出现 “预览”、“外部浏览器打开”、“下载” 三个按钮。点击 “预览” 可以在 CherryStudio 预览生成的图表,点击 “外部浏览器打开” 可以在浏览器中运行代码并显示生成的图表、点击 “下载” 可以保存生成的 HTML 代码文件。
2.2 导入数据文件生成可视化图表
通过文本描述生成数据文件,及导入数据文件生成可视化图表的 HTML 代码。
- 通过文本描述生成数据文件
示例指令:“请联网搜索 2023年 中国内地 TOP10 手机型号的销售数据,以 csv 格式输出。”
点击“<csv>” 之后的 “保存” 按钮,将输出结果保存为数据文件 “202504131402.csv”。
使用 "CherryStudio + 硅基流动/Deepseek API " 的聊天助手,则会出现 “预览”、“外部浏览器打开”、“下载” 三个按钮。点击 “预览” 可以在 CherryStudio 预览生成的图表,点击 “外部浏览器打开” 可以在浏览器中运行代码并显示生成的图表、点击 “下载” 可以保存生成的 HTML 代码文件。
- 导入数据文件,生成可视化图表的 HTML 代码。
(1)点击对话框工具栏中曲别针形状的 “打开文件”按钮,从文件夹中选中数据文件(如 202504131402.csv),对话框中将显示导入的文件图标。
(2)输入绘图要求指令,明确数据、图表类型和交互需求:“请整理并分析上传的数据,生成数据看板,包括标题,TOP10机型销售数据柱状图和看板、品牌份额饼图和技术卖点分布条形图。以 HTML 形式输出。”
在输出代码的下方,点击 “预览” 可以在 CherryStudio 预览生成的图表,如下图所示。
- 根据需求进行优化调整。
通过语言提示,提出优化调整数据看板的需求:“请根据要求优化数据看板,重新输出 HTML代码。1、显示TOP10机型销售数据 环形图,核心技术卖点条形图,2、分左右两个图表,在同一页面显示,3、保留销售数据表格不变。”
3. Deepseek 生成 Python 程序制作可视化图表
使用 Python 语言中的 Matplotlib 库可以生成高质量的可视化图表,但学习 Matplotlib 需要需要记忆很多 API 函数和参数,手动调整图表样式,制作多子图组合或交互式图表更是需要较高的编程能力。
基于 Deepseek 自动生成 Python 程序制作可视化图表,直接采用自然语言接口,用户仅需描述数据类型、图表类型和定制化需求,系统即可自动生成完整的 Python 代码,从而显著降低了技术门槛,而且极大地提高了开发效率。
Deepseek-Python 自动生成方案的典型工作流程包含以下步骤:
- 数据需求描述:用户结构化说明数据来源和图表要求,推荐采用"图表类型+数据特征+样式需求"的表述方式。
- 代码自动生成:系统自动生成匹配的 Python 代码。
- 代码调试:将生成的 Python 代码复制到 IDE 中进行调试,如果报错可以将报错信息复制并发给 Deepseek 来修改代码。
- 迭代优化:用户可以通过补充指令进行功能扩展或样式微调,迭代优化图表质量。
3.1 导入数据文件生成 Python 程序
- 导入数据文件,描述图表需求。
以上文中的 “202504131402.csv” 文件为例导入数据。
(1)点击对话框工具栏中曲别针形状的 “打开文件”按钮,从文件夹中选中数据文件(如 202504131402.csv),对话框中将显示导入的文件图标。
(2)输入绘图要求指令,明确数据、图表类型和交互需求:“请整理并分析上传的数据,使用 Python 的 matplotlib 库绘制图表。要求如下:1. 绘制一个柱状图和一个饼图,左右排列;2. 图表包含标题、图例、刻度等元素,字体与图表大小协调;3. 输出格式为 Python 源程序,包括代码注释,直接显示图表,不要带有其它解读内容。4. 输出前检查代码准确可执行,避免语法错误。5. 注意数据文件和输出图表中可能包含中文字符。”
- 自动生成 Python 代码。
# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
import pandas as pd
from matplotlib import rcParams
# 设置中文字体和负号显示
rcParams['font.sans-serif'] = ['SimHei'] # Windows系统常用字体
rcParams['axes.unicode_minus'] = False # 解决负号显示问题
def load_and_preprocess():
"""数据加载与预处理"""
data = pd.read_csv('202504131402.csv', encoding='utf-8')
# 清洗百分比数据
data['市场份额(%)'] = data['市场份额(%)'].str.replace('%', '').astype(float)
return data
# 主绘图函数
def create_dual_chart(data):
"""创建双图布局"""
plt.figure(figsize=(18, 7), dpi=100)
# ========== 柱状图 (左) ==========
ax1 = plt.subplot(1, 2, 1)
bars = ax1.bar(
data['型号'],
data['2023年总销量(万台)'],
color=plt.cm.tab20.colors[:len(data)],
alpha=0.7
)
# 图表装饰
ax1.set_title('2023年度旗舰手机销量TOP10', fontsize=16, pad=20)
ax1.set_xlabel('机型型号', fontsize=12)
ax1.set_ylabel('销量(万台)', fontsize=12)
ax1.tick_params(axis='x', rotation=45, labelsize=10)
ax1.grid(axis='y', linestyle='--', alpha=0.6)
# 添加数据标签
for bar in bars:
height = bar.get_height()
ax1.text(
bar.get_x() + bar.get_width() / 2.,
height + 20,
f'{
int(height)}',
ha='center',
va='bottom',
fontsize=9
)
# ========== 饼图 (右) ==========
ax2 = plt.subplot(1, 2, 2)
wedges, texts, autotexts = ax2.pie(
data['市场份额(%)'],
labels=data['型号'],
autopct='%1.1f%%',
startangle=90,
counterclock=False,
colors=plt.cm.tab20.colors[:len(data)],
textprops={
'fontsize': 9},
pctdistance=0.85,
wedgeprops={
'width': 0.4, 'edgecolor': 'white'}
)
# 饼图装饰
ax2.set_title('市场份额分布', fontsize=16, pad=20)
plt.setp(autotexts, size=9, weight='bold')
# 添加图例(放在饼图右侧)
plt.legend(
wedges,
data['型号'],
title="机型列表",
loc="center left",
bbox_to_anchor=(1, 0, 0.5, 1),
fontsize=9
)
# 调整布局
plt.tight_layout(pad=3.0)
plt.show()
# 执行程序
if __name__ == "__main__":
df = load_and_preprocess()
create_dual_chart(df)
- 调试和运行 Python 代码。
(1)将生成的代码复制到 PyCharm 中编译和运行。注意要确保读取的 .csv文件位于同一目录下。
(2)如果报错可以将报错信息复制并发给 Deepseek 来修改代码。
程序运行结果如下图所示。
- 优化微调。
对于图中的任何修改,都可以以自然语言描述方式输入。
例如:“请对该图表进行修改,以Python 源程序格式输出:1. 增加总标题 “2023年度旗舰手机销量分析”,将子图标题分别修改为“旗舰手机销量 TOP10”和“旗舰手机市场份额”;2. 取消右侧饼图中的 “机型列表” 图例;3. 将图中的标注字体修改为 “宋体/TimesNewRoman”。”
运行 Deepseek 输出的修改程序,结果如下图所示。
版权声明:
[email protected] 原创作品,转载必须标注原文链接:
[【DeepSeek应用】用 DeepSeek 轻松玩转可视化图表(1)
Copyright@youcans 2025
Crated:2025-04