一个通过plotnine实现R中备受喜爱的ggplot2图形语法的Model Context Protocol (MCP)服务器,使AI能够通过自然语言生成高质量的数据可视化。
通过聊天创建出版级别的统计图形,利用plotnine对R中广受喜爱的ggplot2的Python实现。这个模块化的MCP服务器允许Claude和其他AI助手通过图形语法范式组合图层来生成高度可定制的可视化效果。
<a href="https://glama.ai/mcp/servers/@Fervoyush/plotnine-mcp"> <img width="380" height="200" src="https://gips0.baidu.com/it/u=875332398,1428851524&fm=3081&app=3081&f=PNG?w=760&h=400" alt="Plotnine Server MCP server" /> </a>cd plotnine-mcp
使用pip:
pip install -e .
为了完全功能(支持Parquet和Excel):
pip install -e ".[full]"
将服务器添加到您的Claude Desktop配置文件中:
macOS:~/Library/Application Support/Claude/claude_desktop_config.json
Windows:%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"plotnine": {
"command": "python",
"args": ["-m", "plotnine_mcp.server"]
}
}
}
如果您安装在一个虚拟环境中,请使用python的完整路径:
{
"mcpServers": {
"plotnine": {
"command": "/path/to/venv/bin/python",
"args": ["-m", "plotnine_mcp.server"]
}
}
}
通过打开命令面板(Cmd/Ctrl+Shift+P)并搜索“Preferences: Open User Settings (JSON)”来添加到Cursor设置中。添加:
{
"mcp.servers": {
"plotnine": {
"command": "python",
"args": ["-m", "plotnine_mcp.server"]
}
}
}
或者在项目中通过.cursor/mcp.json配置:
{
"mcpServers": {
"plotnine": {
"command": "python",
"args": ["-m", "plotnine_mcp.server"]
}
}
}
添加到您的VSCode MCP设置文件中:
macOS/Linux:~/.config/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json
Windows:%APPDATA%\Code\User\globalStorage\rooveterinaryinc.roo-cline\settings\cline_mcp_settings.json
{
"mcpServers": {
"plotnine": {
"command": "python",
"args": ["-m", "plotnine_mcp.server"]
}
}
}
对于VSCode中的其他MCP客户端,请查阅其特定文档以了解MCP服务器配置。
重启Claude Desktop、Cursor或VSCode以使更改生效。现在应该可以使用plotnine MCP服务器了!
从data.csv创建一个散点图,其中x=年龄,y=身高
从sales_data.csv创建一条线图,显示:
- x: 日期,y: 收入,按地区着色
- 使用最小主题,图尺寸为12x6
- 添加平滑趋势线
- 按产品类别分面
- 标题为“Q4销售表现”
- 保存为PDF
创建一个具有完全自定义的plotnine可视化。
必需参数:
data_source:数据源配置aes:美学映射(列名)geom 或 geoms:几何图形规范可选参数:
scales:尺度配置数组theme:主题配置facets:分面配置labels:绘图标签(标题、x、y、注释、副标题)coords:坐标系统配置stats:统计变换transforms:数据变换(新!)output:输出配置(格式、大小、DPI、目录)列出所有20多种可用的几何类型及其描述。
预览和检查数据,以便在创建图表之前进行检查。返回数据集形状、列类型、前几行、统计数据和缺失值。
参数:
data_source:数据源配置rows:要预览的行数(默认:5)列出所有9种可用的图表模板及其描述:
使用预定义的模板创建图表。只需提供数据和美学;模板会处理其余部分。
参数:
template_name:模板名称data_source:数据源配置aes:美学映射labels:可选标签output:可选输出配置overrides:可选模板设置覆盖分析您的数据,并根据列类型和可选目标获得AI驱动的图表推荐。
参数:
data_source:要分析的数据源goal:可选目标(例如,“比较分布”,“展示趋势”)列出所有可用于绘图样式的主题及其描述和自定义选项。
列出6类21种颜色调色板:
参数:
category:可选类别过滤器将绘图配置导出为JSON,以便重复使用和共享。
参数:
config:要导出的绘图配置filename:输出文件名directory:输出目录(默认:'./plot_configs')导入并使用已保存的绘图配置,可选覆盖。
参数:
config_path:已保存配置的路径overrides:可选参数覆盖一次操作创建多个图表。非常适合生成所有列、成对比较或同一数据的不同可视化。
参数:
plots:绘图配置数组{
"data_source": {
"type": "file",
"path": "./data/iris.csv"
},
"aes": {
"x": "sepal_length",
"y": "sepal_width",
"color": "species"
},
"geom": {
"type": "point",
"params": {"size": 3, "alpha": 0.7}
}
}
{
"data_source": {
"type": "url",
"path": "https://example.com/timeseries.csv"
},
"aes": {
"x": "date",
"y": "value",
"color": "category"
},
"geom": {
"type": "line",
"params": {"size": 1.5}
},
"scales": [
{
"aesthetic": "x",
"type": "datetime",
"params": {"date_breaks": "1 month"}
}
],
"theme": {
"base": "minimal",
"customizations": {
"figure_size": [12, 6],
"legend_position": "bottom"
}
},
"labels": {
"title": "时间序列分析",
"x": "日期",
"y": "数值"
}
}
{
"data_source": {
"type": "inline",
"data": [
{"group": "A", "category": "X", "value": 10},
{"group": "A", "category": "Y", "value": 15},
{"group": "B", "category": "X", "value": 12}
]
},
"aes": {
"x": "group",
"y": "value",
"fill": "group"
},
"geom": {
"type": "boxplot"
},
"facets": {
"type": "wrap",
"facets": "~ category"
},
"theme": {
"base": "bw"
}
}
新! 层叠多种几何图形以创建复杂的可视化:
{
"data_source": {
"type": "file",
"path": "./data/measurements.csv"
},
"aes": {
"x": "time",
"y": "value",
"color": "sensor"
},
"geoms": [
{
"type": "point",
"params": {"size": 2, "alpha": 0.6}
},
{
"type": "smooth",
"params": {"method": "lm", "se": false}
}
],
"theme": {
"base": "minimal",
"customizations": {"figure_size": [12, 6]}
},
"labels": {
"title": "传感器读数及趋势线",
"x": "时间",
"y": "测量值"
}
}
展示分布摘要和个别数据点:
{
"data_source": {
"type": "file",
"path": "./data/experiment.csv"
},
"aes": {
"x": "treatment",
"y": "response",
"fill": "treatment"
},
"geoms": [
{
"type": "boxplot",
"params": {"alpha": 0.7}
},
{
"type": "jitter",
"params": {"width": 0.2, "alpha": 0.5, "size": 1}
}
],
"theme": {
"base": "bw"
},
"labels": {
"title": "治疗效果及个别观察"
}
}
您可以通过自然语言创建图表:
“创建users.csv中‘年龄’列的直方图”
“制作一个散点图,显示价格与尺寸的关系,按类别着色,并带有平滑趋势线”
“从sales.csv创建一条线图,x轴为日期,y轴为收入,按地区分面,使用深色主题”
“创建一个比较不同学校测试分数分布的小提琴图”
“制作一个显示季节温度的箱形图,并叠加个别数据点”
“创建一个散点图,每个类别都有线性趋势线,展示学习时间和测试成绩之间的关系”
“预览sales.csv中的数据,然后再绘图”
“有哪些主题可用?”
“显示所有可用的图表模板”
“为我的数据推荐合适的图表类型”
“使用模板创建时间序列图”
“列出科学类别的所有颜色调色板”
“导出此绘图配置,以便以后重复使用”
“从my_config.json加载绘图配置,并用于不同的数据集”
“从保存的配置创建图表,但将主题更改为最小”
“为数据集中的每个类别创建图表”(批量处理)
“过滤数据,仅显示活跃用户,然后创建直方图”(数据转换)
使用带有趋势线的散点图模板创建图表:
“使用scatter_with_trend模板绘制我的数据中的身高与体重”
这将自动创建一个具有以下内容的图表:
“创建一个使用色盲安全的Okabe-Ito调色板着色的条形图”
“过滤销售数据,仅显示第四季度,按地区分组,汇总收入,然后创建条形图”
这将在绘图前应用转换:
“为我数据集中的所有数值列创建直方图”
可用的基础主题:
gray(默认)bw(黑白)minimalclassicdarklightvoidcartesian(默认)flip(交换x和y)fixed(固定纵横比)trans(转换坐标)默认情况下,图表保存到./output目录,作为300 DPI的PNG文件。您可以自定义:
确保已安装该包:
pip install -e .
安装可选依赖项:
pip install -e ".[full]"
使用绝对路径或相对于Claude Desktop运行位置的相对路径。
检查:
aes中的列名是否与您的数据匹配