1. 项目概述PaperBanana 是一个让我眼前一亮的工具。作为一名长期在AI和学术研究领域摸爬滚打的从业者我深知制作一张高质量的学术图表有多耗时耗力。从构思布局、绘制草图到调整配色、标注细节最后还要确保它符合NeurIPS、ICML这类顶会的审美规范整个过程下来少则几小时多则一两天。PaperBanana 的出现直击了这个痛点。它本质上是一个智能化的学术图表生成框架能够将你用文字描述的研究方法或数据通过一个多智能体Multi-Agent的管道自动转化为可直接用于论文发表的、具有出版质量的示意图和统计图表。它的核心价值在于“自动化”和“智能化”。不是简单地调用一个文生图模型而是模拟了人类绘制图表时的思考过程先理解你的方法文本再参考优秀的范例进行规划接着考虑视觉风格生成初稿后还能自我批判和迭代优化。这背后是两阶段七智能体的协同工作包括输入优化器、检索器、规划器、风格师、可视化器、评论家等。目前它支持OpenAIGPT-5.2 GPT-Image-1.5、Azure OpenAI以及免费的Google Gemini作为后端提供了命令行CLI、Python API、本地Web界面PaperBanana Studio以及MCP服务器用于集成到Claude Code、Cursor等IDE多种使用方式非常灵活。如果你是一名AI科学家、研究生或者任何需要频繁制作技术示意图、模型架构图、算法流程图和数据可视化图表的研究人员这个工具能为你节省大量重复性劳动让你更专注于研究本身。接下来我将带你深入拆解它的设计思路、手把手教你如何上手并分享一些我实际使用中积累的实操技巧和避坑指南。2. 核心架构与多智能体工作流解析PaperBanana 的魔力并非来自单一的“黑盒”模型而是源于一个设计精巧、分工明确的智能体协作系统。理解这个工作流不仅能帮你更好地使用它还能在结果不尽如人意时知道该从哪个环节入手进行调整。2.1 两阶段管道设计整个流程被清晰地划分为两个主要阶段外加一个可选的预处理阶段。这种设计保证了生成的图表既忠实于原文又具备良好的可读性和美观度。阶段0输入优化可选这是通过--optimize标志触发的预处理步骤。很多情况下我们提供的原始方法描述可能比较冗长或松散直接用于生成图表效果不佳。PaperBanana 在这里并行运行两个视觉语言模型VLM调用上下文丰富器它会分析你的原始文本将其结构化提取出关键的组件如模块、层、数据流箭头方向、分组关系以及输入/输出整理成一份更适合图表生成的“食谱”。标题锐化器我们写的图注Caption有时比较笼统比如“我们的方法概述”。这个智能体会将其转化为更精确的视觉规范例如“一个三阶段的编码器-解码器架构图重点突出注意力机制和残差连接”。这个阶段的目的是提升输入信息的质量为后续的智能体提供更清晰、更结构化的指令相当于在烹饪前先把食材洗净切好。阶段1线性规划这个阶段的目标是产出一份详细的、可供执行的“视觉描述文档”。检索器它不会凭空创造而是从一个精心策划的、包含13个领域如智能体/推理、视觉/感知、生成/学习等的优质方法论图表库中检索出与你的需求最相关的几个范例。这相当于一位经验丰富的设计师在动笔前先翻阅同类优秀作品寻找灵感和参考格式。规划器基于检索到的范例和经过优化的输入内容通过上下文学习In-Context Learning生成一份详细的文本描述。这份描述会具体到有哪些方块、圆圈它们之间如何连接每个部分标注什么文字。风格师规划器可能只关注“有什么”风格师则负责“长什么样”。它会根据NeurIPS等顶级会议的视觉指南对描述进行美学加工指定颜色方案如使用色盲友好配色、布局建议如对称、层次、字体大小等确保最终产出符合学术出版规范。阶段2迭代优化这是“生成-评估-改进”的循环是确保质量的关键。 4.可视化器接收来自风格师的最终描述调用图像生成模型如GPT-Image-1.5或Gemini渲染出第一版图表。 5.评论家这是一个严格的“质检员”。它会将生成的图表与原始的方法文本进行比对评估其忠实性有没有画错或遗漏关键部件、可读性布局是否清晰等并生成一份修订意见指出问题所在。 6.迭代修订意见会反馈给规划器/风格师进行描述调整然后可视化器再次生成。这个过程默认进行3轮可通过--iterations调整或者开启--auto模式后会一直循环直到评论家满意为止有最大迭代次数上限防止死循环。注意这个多智能体架构是PaperBanana区别于普通文生图工具的核心。它把复杂的图表生成任务分解成了可管理、可解释的子任务每个智能体各司其职共同保证了结果的可靠性和专业性。2.2 智能体间的信息流与数据格式理解智能体之间传递的数据结构有助于进行高级调试。本质上整个管道传递的是一个不断演进的“生成状态”对象。这个对象至少包含source_context: 原始或优化后的方法文本。communicative_intent: 原始或锐化后的图注。retrieved_examples: 检索到的参考图及其元数据。plan: 规划器生成的详细描述。style_spec: 风格师添加的美学规范。current_image: 当前迭代生成的图像。critique: 评论家给出的反馈。当你使用--continue功能时实际上就是加载了上一次运行保存的这个完整状态存储在outputs/run_*/metadata.json中然后从评论家反馈环节重新开始循环。这种设计使得人机交互式修正成为可能你可以查看评论家的意见然后通过--feedback参数加入你自己的修改要求引导下一轮生成。3. 从零开始环境配置与核心功能实操理论说得再多不如动手一试。下面我将以最常用的Google Gemini免费套餐为例带你完成一次从安装到生成第一个图表的完整流程并穿插讲解关键参数的选择逻辑。3.1 环境准备与安装首先确保你的Python版本在3.10或以上。我强烈建议使用虚拟环境来管理依赖避免污染系统环境。# 创建并激活虚拟环境以venv为例 python -m venv paperbanana-env source paperbanana-env/bin/activate # Linux/macOS # paperbanana-env\Scripts\activate # Windows # 安装PaperBanana核心包 pip install paperbanana如果你想使用本地Web UIPaperBanana Studio或者处理PDF输入需要安装额外的依赖组# 安装Studio基于Gradio的Web界面 pip install paperbanana[studio] # 安装PDF支持使用PyMuPDF解析论文PDF pip install paperbanana[pdf] # 对于开发可以安装所有可选依赖 pip install -e .[dev,openai,google]3.2 获取并配置API密钥PaperBanana支持多种后端这里我们配置免费的Google Gemini。获取API密钥访问 Google AI Studio 登录你的Google账号点击“Create API Key”即可免费获取。Gemini的免费额度对于个人学术用途来说通常足够。配置环境变量最简单的方法是使用项目提供的设置向导。paperbanana setup运行后它会交互式地询问是否使用官方Gemini API选择Yes。请输入你的Google API密钥粘贴你刚才复制的密钥。 程序会自动创建或更新本地的.env文件。手动配置高级你也可以直接编辑.env文件。复制项目中的示例文件并修改cp .env.example .env然后用文本编辑器打开.env确保有以下内容如果你只用GeminiOpenAI的键可以留空# 使用Gemini GOOGLE_API_KEYyour_actual_gemini_api_key_here # 如果你想用OpenAI则填写下面的 # OPENAI_API_KEYsk-...如果你需要通过代理或自定义网关访问Gemini例如在某些网络环境下可以设置GOOGLE_BASE_URLhttps://your-gemini-proxy.example.com3.3 生成你的第一张方法论图表假设你有一段描述Transformer编码器层的文本保存在transformer_method.txt文件中我们的模型采用标准的Transformer编码器层堆叠而成。每个编码器层包含两个子层第一个是多头自注意力机制Multi-Head Self-Attention第二个是前馈神经网络Position-wise Feed-Forward Network。每个子层周围都有一个残差连接Residual Connection之后进行层归一化Layer Normalization。输入序列首先经过嵌入层Embedding和位置编码Positional Encoding得到输入表示。现在使用最基本的命令生成图表paperbanana generate \ --input transformer_method.txt \ --caption Transformer encoder layer architecture几秒到几分钟后取决于模型速度和迭代次数你会在outputs/目录下看到一个以时间戳命名的文件夹如outputs/run_20250218_143022_a1b2c3/。里面最重要的文件是final_output.png这就是生成的图表。文件夹里还保存了每一轮迭代的中间结果如果配置了save_iterations: true和详细的元数据metadata.json这对于理解生成过程和后续调试非常有价值。进阶用法释放全部潜力基础命令可能不够。让我们加入更多参数看看效果如何提升paperbanana generate \ --input transformer_method.txt \ --caption Detailed architecture of a Transformer encoder layer with residual connections \ --optimize \ # 启用输入优化让模型先理解并结构化你的文本 --auto \ # 启用自动优化直到评论家满意为止最多--max-iterations次 --max-iterations 10 \ # 为--auto模式设置安全上限防止无限循环 --iterations 5 \ # 固定迭代次数与--auto二选一。这里被--auto覆盖但逻辑上设5次 --vlm-provider gemini \ # 指定使用Gemini作为VLM规划、评论 --vlm-model gemini-2.0-flash \ # 指定Gemini模型 --image-provider google_imagen \ # 指定使用Gemini的图像生成 --image-model gemini-3-pro-image-preview \ # 指定图像模型 --verbose # 显示详细的生成日志看到每个智能体的工作--optimize强烈建议始终开启。我的实测表明经过优化后的输入能显著提升最终图表的准确性和结构清晰度尤其对于复杂或书写随意的文本。--autovs--iterations--iterations 3是固定跑3轮。--auto则是“动态优化”由评论家决定何时停止达到“满意”标准。对于重要图表我通常先用--auto跑一次看看它自然收敛需要几轮之后为了可复现性可以改用固定的--iterations并设置为比收敛轮数稍多1-2轮。Provider/Model选择如果不指定默认使用OpenAI。对于想免费使用的用户如上所示需要显式指定为gemini和google_imagen。注意Gemini的图像生成模型如gemini-3-pro-image-preview和VLM模型是分开指定的。3.4 处理PDF输入与继续运行很多时候我们的方法描述就在论文PDF里。PaperBanana可以直接读取PDF。paperbanana generate \ --input my_paper.pdf \ --caption Overall pipeline of the proposed framework \ --pdf-pages 3-5 \ # 只读取第3到第5页避免无关内容干扰 --optimize重要提示PDF解析依赖PyMuPDF (pip install paperbanana[pdf])。解析效果取决于PDF的质量是否是文本型PDF。对于扫描版PDF效果会很差。建议先尝试解析几页查看metadata.json中提取的文本是否正确。“继续运行”功能这是PaperBanana非常强大的一个交互特性。生成结果不满意不必重头再来。首先找到上一次运行的文件夹ID例如run_20250218_143022_a1b2c3。使用--continue-run并附上你的修改意见paperbanana generate --continue-run run_20250218_143022_a1b2c3 \ --feedback The attention blocks are too small. Make the residual connections more prominent with dashed lines and bright colors.这条指令会加载上次运行的所有状态包括已经迭代了3轮的图像将你的反馈融入评论家的下一轮评估然后继续迭代。你可以把它理解为“定向优化”直接告诉模型哪里需要改比重新描述整个方法高效得多。3.5 生成统计图表除了方法论示意图PaperBanana还能生成统计图表如柱状图、折线图、散点图。这需要提供结构化的数据文件CSV或JSON和一个描述意图。假设你有一个results.csvmodel,benchmark_A,benchmark_B,benchmark_C ResNet-50,85.2,72.1,90.5 ViT-Base,88.7,75.4,92.3 Swin-Tiny,89.5,76.8,93.0生成命令如下paperbanana plot \ --data results.csv \ --intent A grouped bar chart comparing the accuracy of ResNet-50, ViT-Base, and Swin-Tiny across three different benchmarks (A, B, C). Use a distinct color for each model and add clear legends. --vlm-provider gemini # 统计图表默认也尝试使用Gemini统计图表的生成管道与方法论图表类似但使用了针对图表类型优化的提示词在prompts/plot/目录下。它同样支持--optimize和--auto模式。4. 高效工作流批量生成、组合与评估当你要为一篇论文生成多个图表时逐个使用命令行效率太低。PaperBanana的批量处理功能就是为此而生。4.1 批量生成方法论图表创建一个YAML格式的清单文件my_figures.yamlitems: - input: sections/method_intro.txt caption: Figure 1: Overall framework of our proposed system. id: fig1_overview - input: sections/encoder_details.txt caption: Figure 2: Detailed architecture of the multi-scale encoder module. id: fig2_encoder - input: paper.pdf caption: Figure 3: End-to-end training and inference pipeline. id: fig3_pipeline pdf_pages: 4-6 # 仅对PDF输入有效然后运行批量命令paperbanana batch --manifest my_figures.yaml --optimize --auto程序会按顺序处理清单中的每一项每个任务都会在outputs/batch_timestamp_id/目录下创建独立的run_id/文件夹。全部完成后会生成一个batch_report.json汇总所有任务的状态、最终输出路径和可能的错误信息。4.2 创建多子图组合论文中经常需要将多个相关的子图组合成一张大图例如“(a) 模型架构(b) 损失曲线(c) 消融实验”。PaperBanana可以在批量生成后自动完成拼接。在清单文件中添加composite部分composite: layout: 1x3 # 1行3列的网格 labels: auto # 自动标记为 (a), (b), (c) spacing: 25 # 子图间距25像素 label_position: bottom # 标签放在子图底部 output: figure_2_composite.png # 组合图输出文件名 items: - input: arch.txt caption: (a) Model Architecture id: panel_a - input: loss_curve.txt caption: (b) Training Loss Curve id: panel_b - input: ablation.txt caption: (c) Ablation Study Results id: panel_c运行paperbanana batch后除了生成三个独立的子图还会在批量输出目录下生成一张拼接好的figure_2_composite.png。你也可以事后使用paperbanana composite命令对任意已有的图片进行组合。4.3 批量生成统计图表批量生成统计图表的清单文件格式略有不同需要指定data和intentitems: - data: results/accuracy.csv intent: Bar chart comparing top-1 accuracy across different model sizes. id: plot_acc aspect_ratio: 4:3 # 可选指定单个图的宽高比 - data: results/training_time.json intent: Line chart showing training time versus model parameters, with a logarithmic scale on the x-axis. id: plot_time使用专门的plot-batch命令paperbanana plot-batch --manifest my_plots.yaml --venue neurips这里的--venue neurips参数会让生成的图表自动适配NeurIPS会议的视觉风格如字体、配色。4.4 图表质量评估如何客观地评价生成的图表质量PaperBanana内置了一个基于VLM-as-a-Judge的评估系统可以将生成的图表与人工绘制的参考图表进行对比。paperbanana evaluate \ --generated outputs/run_xxx/final_output.png \ --reference human_drawn_figure1.png \ --context method_description.txt \ --caption Our proposed model architecture评估系统会从四个维度打分忠实性生成的图表是否准确反映了原文内容简洁性图表是否避免了不必要的复杂元素可读性布局、标签、箭头是否清晰易懂美观性是否符合学术审美这个功能非常有用不仅可以用于对比不同参数下的生成效果也可以在批量生成后快速筛选出质量不合格的图表进行手动修正或重新生成。5. 高级用法与集成5.1 使用Python API进行编程集成对于希望将PaperBanana集成到自己流水线或工具中的开发者Python API提供了最大的灵活性。import asyncio from paperbanana import PaperBananaPipeline, GenerationInput, DiagramType from paperbanana.core.config import Settings # 1. 配置设置 settings Settings( vlm_providergemini, vlm_modelgemini-2.0-flash, image_providergoogle_imagen, image_modelgemini-3-pro-image-preview, optimize_inputsTrue, auto_refineTrue, max_iterations15, output_dir./my_custom_outputs, # 自定义输出目录 ) # 2. 初始化管道 pipeline PaperBananaPipeline(settingssettings) # 3. 定义进度回调用于UI或日志 def progress_callback(event): print(f[{event.stage}] {event.message} ({event.seconds:.2f}s)) # 4. 执行生成 async def main(): input_data GenerationInput( source_contextYour methodology text here..., communicative_intentA clear diagram showing the process., diagram_typeDiagramType.METHODOLOGY, # 或 DiagramType.STATISTICAL_PLOT ) result await pipeline.generate( input_data, progress_callbackprogress_callback # 可选 ) print(fDiagram saved to: {result.image_path}) print(fFinal critique score: {result.final_critique_score}) # 如果有的话 # result.metadata 包含了完整的运行元数据 asyncio.run(main())继续运行的API示例from paperbanana.core.resume import load_resume_state # 加载之前运行的状态 state load_resume_state(./my_custom_outputs, run_20250218_143022_a1b2c3) # 继续运行并加入人工反馈 new_result await pipeline.continue_run( resume_statestate, additional_iterations2, user_feedbackPlease use a more vibrant color palette and increase font size for module names., progress_callbackprogress_callback )5.2 在IDE中使用MCP服务器与Claude Code技能这是提升日常研究效率的利器。通过MCPModel Context Protocol服务器你可以直接在Claude Code或Cursor等智能IDE中调用PaperBanana。配置MCP服务器以Claude Desktop为例找到Claude的配置文件通常在~/.config/claude/desktop-config.json或通过Claude Desktop设置界面。添加PaperBanana作为MCP服务器{ mcpServers: { paperbanana: { command: uvx, args: [--from, paperbanana[mcp], paperbanana-mcp], env: { GOOGLE_API_KEY: your_actual_gemini_api_key_here } } } }重启Claude Desktop。之后你就可以在聊天框中直接使用技能了/generate-diagram path/to/method.txt “A diagram of the algorithm”/generate-plot path/to/data.csv “A bar chart of results”/evaluate-diagram generated.png reference.png在代码编辑器中的体验当你正在编写描述方法的文本时直接选中这段文本调用/generate-diagram技能图表就能快速生成并可能插入到你的文档中。这种与工作流深度集成的方式极大地减少了上下文切换。5.3 使用PaperBanana Studio本地Web UI对于不喜欢命令行的用户或者想要更直观地比较不同生成结果、管理历史运行记录Studio是完美选择。# 确保已安装 studio 依赖 pip install paperbanana[studio] # 启动Studio并指定输出目录 paperbanana studio --output-dir ./my_project_figures在浏览器中打开http://127.0.0.1:7860你会看到一个包含多个标签页的界面Diagram/Plot核心生成界面提供与CLI类似但更直观的参数设置。Evaluate质量评估界面。Continue加载历史运行记录基于反馈继续优化。Batch上传清单文件进行批量生成支持图表和统计图。Browser浏览outputs/目录下的所有历史运行和批量任务方便查看和管理。Studio将所有功能图形化特别适合探索性工作。你可以快速调整参数实时看到效果并且所有运行记录都被妥善保存。6. 配置详解、问题排查与性能调优6.1 深度解析配置文件PaperBanana的默认配置位于configs/config.yaml。通过创建自定义配置文件你可以精细控制整个系统。# my_config.yaml vlm: provider: gemini model: gemini-2.0-flash-exp # 可以尝试不同的Gemini模型变体 temperature: 0.2 # 降低创造性提高一致性 request_timeout: 120 # 超时时间秒 image: provider: google_imagen model: gemini-3-pro-image-preview # 图像生成参数通常由VLM的指令决定这里可配的较少 pipeline: num_retrieval_examples: 8 # 检索的参考图数量减少可加快速度增加可能提升质量 refinement_iterations: 4 # 默认迭代次数 auto_refine: true # 是否启用自动优化 max_iterations: 20 # 自动优化的最大安全迭代次数 optimize_inputs: true # 是否启用输入优化 output_resolution: 2k # 输出图像分辨率可选 1k, 2k, 4k reference: path: data/reference_sets # 参考图数据集路径 # 你可以在这里添加自己的参考图但需要遵循原有格式 output: dir: outputs save_iterations: true # 保存每一轮迭代的中间结果用于调试 save_metadata: true # 保存完整的JSON元数据必须为True以便--continue format: png # 默认输出格式 logging: level: INFO # 日志级别DEBUG, INFO, WARNING, ERROR在CLI中使用自定义配置paperbanana generate -i method.txt -c Caption --config my_config.yaml关键参数调优建议num_retrieval_examples对于常见架构如CNN、Transformer5-8个参考图足够。对于非常新颖的领域可以尝试增加到10-12个。refinement_iterations与auto_refine我的经验是对于简单图表固定3-4轮迭代足够。对于复杂图表开启auto_refine并设置max_iterations为10-15让系统自己决定何时停止通常效果更好。观察metadata.json中的critique_history可以看到评论家评分的变化当评分稳定在较高值例如“良好”以上时迭代就可以停止了。output_resolution论文投稿通常需要高分辨率。“2k” (2048x2048) 在大多数情况下是质量和文件大小的良好平衡。“4k”会更清晰但生成时间可能更长文件也更大。6.2 常见问题与解决方案以下是我在实际使用中遇到的一些典型问题及其解决方法问题现象可能原因解决方案ModuleNotFoundError: No module named pymupdf未安装PDF支持依赖。运行pip install paperbanana[pdf]。生成图表完全偏离主题1. 输入文本过于模糊或冗长。2. 图注Caption描述性不强。3. 检索到的参考图不相关。1. 精简输入文本只保留核心组件和流程。2. 使用更具体、视觉化的图注如“A three-stage pipeline with highlighted feedback loop”。3. 开启--optimize让输入优化器先处理文本。检查metadata.json中的retrieved_examples看参考图是否合适。图表元素缺失或错误1. 原始描述存在歧义。2. VLM规划器理解有误。3. 图像生成模型“想象力”不足。1. 在文本中明确使用“模块A”、“连接线B”等标签。2. 使用--continue功能在反馈中明确指出缺失的元素如“Add a softmax layer after the final linear projection.”3. 尝试切换图像生成模型如从gpt-image-1.5换到gemini-3-pro-image-preview或增加迭代次数。布局混乱可读性差1. 风格师指令未被很好执行。2. 图像生成模型不擅长复杂布局。1. 在--caption或--feedback中加入布局指令如“Use a left-to-right flow layout”、“Group related modules within a dashed bounding box”。2. 考虑分步生成先让PaperBanana生成一个简化版然后导出描述从metadata.json找final_plan手动调整布局描述后再生成。API调用超时或错误1. 网络问题。2. API密钥无效或额度不足。3. 服务端繁忙。1. 检查网络连接对于Gemini可尝试设置GOOGLE_BASE_URL使用代理。2. 验证API密钥检查用量限制。3. 增加配置中的request_timeout或稍后重试。使用--verbose查看具体错误阶段。--auto模式陷入无限循环评论家始终不满意或评分逻辑出现振荡。设置合理的--max-iterations如15。检查metadata.json中的critique_history如果评分一直在低分徘徊可能是任务本身对模型太难考虑简化输入或改用固定迭代次数。批量处理中某个任务失败单个任务的输入文件错误或API临时故障。检查batch_report.json找到失败的任务ID和错误信息。修正输入文件后可以单独重新运行该任务或修改清单文件只包含失败项再次运行批量命令。6.3 性能优化与成本控制速度最耗时的部分是VLM调用和图像生成。使用响应更快的模型如gemini-2.0-flash比gemini-2.0-pro快可以提升速度。关闭--optimize和减少--iterations也能显著减少时间但可能牺牲质量。成本如果使用OpenAIGPT-5.2和GPT-Image-1.5都是收费的。Gemini的免费套餐是成本最优解但需注意其速率限制。对于大量图表生成建议使用批量处理 (paperbanana batch)并在网络通畅时段运行。缓存PaperBanana本身不缓存API响应。但你可以利用--continue功能先快速生成一个草图--iterations 1如果方向对了再基于此状态进行精细优化避免每次都从头开始。离线使用目前无法完全离线运行因为它严重依赖云端VLM和图像生成服务。未来如果社区推出了本地化的小型规划模型或许可以实现部分功能的离线化。6.4 自定义与扩展PaperBanana是一个开源框架这意味着你可以深度定制它。修改提示词所有智能体的提示词模板都在prompts/目录下。如果你发现生成的图表总是缺少某种元素比如“损失函数”的表示可以尝试修改prompts/diagram/planner.jinja或prompts/diagram/stylist.jinja加入更明确的指令。添加参考图在data/reference_sets/下的对应领域子文件夹中添加你自己的优质图表对图像描述文本。这能引导系统生成更符合你领域或团队风格的图表。实现新的Provider如果你有其他的VLM或图像生成API可以在paperbanana/providers/vlm/和paperbanana/providers/image_gen/下实现相应的类并在配置中引用。最后关于使用心态。PaperBanana是一个强大的辅助工具但它不是万能的。它最适合生成结构清晰、范式相对固定的学术图表如模型架构图、算法流程图、系统框图。对于极度创新、缺乏参考的视觉表达或者对艺术风格有特殊要求的插图可能仍需人工介入或使用其他专业工具。我的工作流通常是用PaperBanana快速生成70-80分的基础图表然后导入到Draw.io或Inkscape中进行最后的20-30分的微调和美化。这样既能保证效率又能确保最终成果完全符合心意。