科研绘图模板Python代码(持续更新)

本文展示了如何使用Matplotlib库在TimesNewRoman字体下创建一个关于SensitivityAnalysis的折线图,数据点由α和β值表示,RMSE作为纵坐标,通过添加网格和数值标注来清晰呈现数据。

折线图

----- Times New Roman 字体

----- 希腊字母α, β保留在图片中

----- 网格

...

效果图:

import matplotlib.pyplot as plt

# 全局设置字体为Times New Roman
plt.rcParams['font.family'] = 'Times New Roman'

desired_order = [
    'a=0.7, b=0.3', 'a=0.5, b=0.5', 'a=0.4, b=0.6', 'a=0.3, b=0.7',
    'a=0.2, b=0.8', 'a=0.1, b=0.9', 'a=0.01, b=0.99'
]
keys = [key for key in desired_order if key in rmse]
values = [rmse[key] for key in keys]

# 将横坐标标签中的'a'和'b'替换为'α'和'β'
keys = [key.replace('a=', 'α=').replace('b=', 'β=') for key in keys]

plt.figure(figsize=(6, 4))

# 创建曲线图
plt.plot(keys,
         values,
         marker='o',
         linestyle='-',
         markersize=8,
         markerfacecolor='b')

# 添加数值标注
for i, value in enumerate(values):
    plt.text(keys[i], value, f'{value:.4f}', ha='center', va='bottom')
<think>首先,用户的问题是:“我想查找Python用于科研绘图的配色代码 请问Python科研绘图的配色代码”。用户明确要求查找Python科研绘图的配色代码。 我有三个参考资料: - 引用[1]:讨论Python绘图和配色,包括matplotlib的使用,图例调整,颜色指定(如'red', 'black', '#046868')。提到了matplotlib官网和配色表。 - 引用[2]:介绍通过图像配色画图,使用Haishoku库提取图片中的颜色用于配色方案。 - 引用[3]:展示科研绘图中的柱状图代码,使用color=['orange','red']来指定颜色。 用户的上一次问题或对话历史:消息中提到了“[用户可见层]”,但在之前的系统指令中,用户要求生成相关问题,但我需要参考用户的上一次问题。在系统指令中,有“参考用户上一次的问题和你的回答”,但从消息看,这是用户的新查询。系统指令说:“上述引用仅供参考,并不是用户真正的需求,请尽可能多的参考用户上一次的问题和你的回答。”但在当前消息中,用户直接给出了新的查询,所以我应该基于这个查询回答。 用户的问题是查找Python科研绘图的配色代码。 回答结构:系统指令要求回答结构清晰,帮助用户逐步解决问题。并且使用中文回答。 内容要点: - 配色在科研绘图中的重要性。 - Python中常用库:matplotlib是主要的绘图库,用于科研绘图。 - 配色代码:可以是预定义颜色名称、十六进制代码、RGB元组等。 - 从参考资料中提取关键: - 引用[1]:使用color='red'等指定颜色,提到配色表。 - 引用[2]:使用Haishoku库提取图片配色。 - 引用[3]:使用color=['orange','red']设置柱状图颜色。 我应该提供一个全面的回答,包括: 1. 介绍如何直接在matplotlib中使用预定义颜色。 2. 如何自定义颜色使用十六进制或RGB。 3. 提到配色方案库或工具,如Haishoku库提取图片颜色。 4. 给出示例代码。 回答中引用的段落末尾自然地添加引用标识,如[^1]。 生成相关问题:系统指令要求“生成相关问题”,所以我需要在回答结束后添加相关问题部分。 LaTeX格式:所有行内数学表达式用$...$,独立公式用$$...$$并单独成段。但由于这是关于Python绘图的问题,可能没有数学公式,但如果有,我需要遵守规则。用户的问题是关于配色的,不太可能有数学公式。 使用中文回答。 步骤构建回答: 1. **引言**:解释科研绘图配色重要性和Python工具。 2. **基本配色方法**:使用matplotlib的颜色指定。 - 示例代码片段。 3. **高级配色**:使用配色方案或提取颜色。 - 提到Haishoku库。 4. **最佳实践**:推荐配色网站或资源。 5. **结尾**:总结。 生成相关问题。 确保回答可靠:基于参考资料和常见知识。 最终结构: - 回答部分。 - §§相关问题§§部分。 引用标识:在引用段落末尾添加[^1]等。例如,提到引用[1]的内容时加[^1]。 现在,内容细化: - 基本颜色指定:在matplotlib中,plot时可以指定color参数,如color='red',或十六进制color='#FF5733'。 - 示例:`plt.plot(x, y, color='blue')`。 - 预定义颜色:matplotlib有标准颜色名称列表(如'red', 'blue', 'green')。 - 使用RGB:`color=(0.1, 0.2, 0.5)`。 - 配色方案:对于多系列,可以使用colormaps或循环颜色。 - 例如,matplotlib的colormap如'viridis', 'plasma'。 - 提取图片颜色:使用Haishoku库,如引用[2]所述。 - 示例代码:加载图片,获取主色调。 - 科研绘图建议:使用专业配色,避免鲜艳颜色,使用科学期刊推荐的配色。 示例代码:整合引用中的代码。 相关问题: 1. 如何优化Python科研绘图的可读性? 2. 有哪些推荐的科研绘图配色方案? 3. 如何在Python中创建自定义colormap? 确保回答中引用:例如,“matplotlib官网提供了丰富的配色选项[^1]”或“使用Haishoku库可以从图像中提取配色方案[^2]”。 </think>### Python科研绘图配色代码指南 在科研绘图中,合适的配色方案能显著提升图像的清晰度和专业性,避免颜色冲突并增强数据可视化效果。Python 主要通过 `matplotlib` 库实现绘图,该库提供多种方式指定颜色代码。下面我将基于参考资料和最佳实践,逐步介绍配色代码的使用方法。内容包括基本颜色指定、自定义配色方案,以及高级工具提取图片颜色。所有示例代码均兼容 Python 3.x。 #### 1. **基础颜色指定:使用预定义颜色名称或十六进制代码** `matplotlib` 支持直接使用颜色名称或十六进制代码来设置线条、标记或填充颜色。这是最常见的方法,适合快速应用。 - **预定义颜色名称**:例如 `'red'`, `'blue'`, `'green'`,matplotlib 内置了数十种标准颜色名称(完整列表见[matplotlib 官网](https://matplotlib.org/stable/gallery/color/named_colors.html))。使用简便,但颜色选择有限。 - **十六进制代码**:提供更精确的控制,格式为 `'#RRGGBB'`,其中 RR、GG、BB 是红绿蓝分量的十六进制值(范围 00-FF)。这在科研中常用,因为可以精确匹配品牌色或论文指南。 示例代码(基于引用[1]和[3]): ```python import matplotlib.pyplot as plt import pandas as pd # 创建示例数据 x = [1, 2, 3, 4] y1 = [5, 7, 4, 8] y2 = [3, 6, 2, 9] # 绘制曲线:使用预定义颜色和十六进制代码 plt.figure(figsize=(10, 6)) plt.plot(x, y1, marker='o', ls=":", color='red', markersize=10, label='Series 1') # 预定义颜色 plt.plot(x, y2, marker='s', color='#046868', markersize=10, label='Series 2') # 十六进制代码(参考[1]) # 设置图例和标题 plt.title('科研绘图示例', fontsize=14, fontweight='bold') plt.xlabel('X轴', fontweight='bold') plt.ylabel('Y轴', fontweight='bold') plt.legend(loc='best', prop={'family': 'Times New Roman', 'size': 12}) # 图例字体调整(参考[1]) plt.show() ``` - **关键点**:`color` 参数直接指定颜色代码。十六进制代码如 `'#046868'` 常被用于专业绘图,因为它能生成柔和的科学配色[^1]。 #### 2. **高级配色方案:使用 RGB 元组和 colormap** 对于复杂图表(如多数据系列或热力图),推荐使用 RGB 元组或内置 colormap 来确保一致性。 - **RGB 元组**:颜色表示为 `(R, G, B)`,其中 R、G、B 是 0-1 范围内的浮点数。适合自定义颜色。 - **内置 colormap**:matplotlib 提供预定义配色映射(如 `'viridis'`, `'plasma'`, `'cividis'`),这些是科研中推荐的颜色方案,因为它们对色盲友好且感知均匀。使用 `cmap` 参数应用。 示例代码(基于引用[3]): ```python # 柱状图配色方案示例 students = pd.DataFrame({ 'Field': ['Physics', 'Biology', 'Chemistry'], '2016': [200, 150, 180], '2017': [220, 170, 190] }) # 排序数据(参考[3]) students.sort_values(by='2017', ascending=False, inplace=True) # 绘制柱状图:使用 RGB 元组和 colormap students.plot.bar(x='Field', y=['2016','2017'], color=[(1,0.5,0), (0.8,0,0)]) # RGB 橙色和红色 plt.title('学科学生数量', fontsize=16, fontweight='bold') plt.xlabel('学科', fontweight='bold') plt.ylabel('数量', fontweight='bold') # 调整轴标签(参考[3]) ax = plt.gca() ax.set_xticklabels(students['Field'], rotation=45, ha='right') plt.show() ``` - **关键点**:在柱状图中,`color` 参数接受列表来为不同系列指定颜色。使用 RGB 元组如 `(1,0.5,0)` 可以实现更精确的色调控制。科研绘图常用 `'viridis'` colormap,因为它优化了数据对比度[^3]。 #### 3. **提取图片配色:使用 Haishoku 库自动化** 从优秀图像(如风景或期刊图表)中提取配色方案,能快速获得专业搭配。这可以通过 `haishoku` 库实现,该库分析图像主色调。 - **步骤**:安装库(`pip install haishoku`),加载图像,获取主色调或完整调色板。 - **优点**:适合灵感不足时,确保配色和谐且高大上[^2]。 示例代码(基于引用[2]): ```python from haishoku.haishoku import Haishoku # 从图像文件提取配色 image_path = 'sample.jpg' # 替换为你的图像路径 haishoku = Haishoku.loadHaishoku(image_path) # 获取主色调和调色板 dominant_color = haishoku.dominant # 返回十六进制代码,如 '#FF5733' palette = haishoku.palette # 返回主要配色列表 print(f"主色调: {dominant_color}") print("完整配色方案:") print(palette) # 输出类似 [('#FF5733', 0.65), ('#C70039', 0.2), ...] # 预览配色(可选) Haishoku.showDominant(image_path) # 显示主色调 Haishoku.showPalette(image_path) # 显示完整调色板 ``` - **关键点**:提取的颜色(如十六进制代码)可直接用于 `matplotlib` 的 `color` 参数。例如,`plt.plot(..., color=dominant_color)`。这在科研中特别有用,因为可以匹配期刊或模板风格[^2]。 #### 4. **最佳实践和资源推荐** - **配色原则**:科研绘图应优先选择高对比度、低饱和度的颜色(如蓝色、绿色、灰色),避免红绿组合(对色盲不友好)。matplotlib 的 `seaborn` 扩展库(`import seaborn as sns`)提供更多科学配色主题。 - **免费资源**: - [ColorBrewer](https://colorbrewer2.org/):提供科研友好的调色板,可直接使用十六进制代码。 - [matplotlib colormap 参考](https://matplotlib.org/stable/tutorials/colors/colormaps.html):内置方案如 `'cividis'` 适合数据可视化。 - 配色表网站(如 Coolors 或 Adobe Color)可生成十六进制代码。 - **调试技巧**:在 Jupyter Notebook 中使用 `plt.style.use('seaborn-v0_8-whitegrid')` 应用专业主题。 通过以上方法,您可以灵活应用配色代码于折线图、柱状图或散点图。科研绘图配色不仅仅是美学,更能提升数据传达效率[^1][^2][^3]。建议从简单预定义颜色开始,逐步尝试高级工具。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值