Python科研绘图--Task01

news2025/4/7 8:49:07

目录

科研论文配图主要成分

常见的插图格式

像素图

矢量图

色彩模式

RGB色彩模式

CMYK色彩模式

 HEX色彩模式

色轮配色原理

单色配色方案

例子

互补色配色方案 

例子

等距三角配色方案

例子

四角配色方案

例子

 颜色主题

单色系

例子

 双色渐变色系

例子

多色系

例子

配色工具

Color Scheme Designer

Adobe Color

ColorBrewer 2.0


科研论文配图主要成分

主要包括 X 轴( X axis ,又称横轴)、 Y 轴( Y axis ,又称纵轴)、 X 轴标签( axis label)、 Y 轴标签( Y axis label )、主刻度( Major tick )、次刻度( Minor tick )和图例( Legend)等。

常见的插图格式

像素图

像素图(位图)是以单个像素为单位,通过对像素进行组合和排列,来显示图片格式。像素图在放大到一定程度后,会失真,变得模糊。常见的像素图格式包括 JPEG PSD PNG TIFF ,其中, JEPG 是一种常用的有损压缩图片格式,处理起来较容易,但像素分辨率低、清晰度差、色彩损失大。

矢量图

矢量图是使用点、直线或多边形等基于数学方程的几何图元表示的图像。矢量图的图像文件包含独
立的分离图像,可以自由、无限制地进行重新组合,其特点是放大后图像不会失真,也就是说,与分辨率无关。常见的矢量图格式包括 EPS PDF AI SVG ,其中, EPS 格式的图片文件小、显示质量高、色彩保真度高,印刷时的字样较为清晰,是常用的论文配图格式;AI 格式是一种可以二次修改的图片格式,也是常用的插图格式,其体积较大,包含图片各图层的所有信息。

色彩模式

RGB色彩模式

CMYK色彩模式

 HEX色彩模式

色轮配色原理

色轮配色原理是一种使用色轮(色彩环)来组合颜色的方法,以实现视觉上的和谐和平衡。色轮通常包括12个主要颜色:三原色、三间色和六个次级色。

单色配色方案

单色配色方案是指将色相相同或相近的一组颜色进行组合。单色配色方案的饱和度和明暗层次明显。
例子

只改变给定颜色的明度。

import matplotlib.pyplot as plt
import matplotlib.colors as mcolors
import numpy as np

def plot_single_color_scheme(base_color_hex):
    base_color_rgb = mcolors.hex2color(base_color_hex)
    shades = np.linspace(0.1, 1, 10) # 10个不同的明度

    fig, ax = plt.subplots(figsize=(10, 1))

    for i, shade in enumerate(shades):
        modified_color = [shade * c for c in base_color_rgb]
        ax.add_patch(plt.Rectangle((i, 0), 1, 1, facecolor=modified_color))

    ax.set_xlim(0, len(shades))
    ax.set_ylim(0, 1)
    ax.axis('off')
    plt.show()

# Example usage with a base blue color
plot_single_color_scheme('#0000FF')

 

互补色配色方案 

当只能选择两种颜色时,我们可参考互补色配色方案进行选择。色轮上间隔 180 °(相对)的两种颜色为互补色。
例子
import matplotlib.pyplot as plt
import matplotlib.colors as mcolors

def plot_complementary_color_scheme(base_color_hex):
    base_color_rgb = mcolors.hex2color(base_color_hex)
    complementary_color_rgb = [1 - c for c in base_color_rgb] # 计算互补色

    fig, ax = plt.subplots(figsize=(2, 1))

    # 绘制基本颜色
    ax.add_patch(plt.Rectangle((0, 0), 1, 1, facecolor=base_color_rgb))

    # 绘制互补颜色
    ax.add_patch(plt.Rectangle((1, 0), 1, 1, facecolor=complementary_color_rgb))

    ax.set_xlim(0, 2)
    ax.set_ylim(0, 1)
    ax.axis('off')
    plt.show()

# Example usage with a base blue color
plot_complementary_color_scheme('#0000FF')

等距三角配色方案

等距三角配色方案是指将色轮上彼此间隔 120 °的 3 种颜色进行组合。等距三角配色方案会让配图的颜色更加丰富。
例子
import matplotlib.pyplot as plt
import colorsys

def plot_triadic_color_scheme(base_color_hex):
    base_color_rgb = [int(base_color_hex[i:i+2], 16) / 255.0 for i in (1, 3, 5)]
    base_color_hsv = colorsys.rgb_to_hsv(*base_color_rgb)

    fig, ax = plt.subplots(figsize=(3, 1))

    # 绘制基本颜色和两个等距离的颜色
    for i in range(3):
        hue = (base_color_hsv[0] + i / 3.0) % 1
        triadic_color_rgb = colorsys.hsv_to_rgb(hue, base_color_hsv[1], base_color_hsv[2])
        ax.add_patch(plt.Rectangle((i, 0), 1, 1, facecolor=triadic_color_rgb))

    ax.set_xlim(0, 3)
    ax.set_ylim(0, 1)
    ax.axis('off')
    plt.show()

# Example usage with a base blue color
plot_triadic_color_scheme('#0000FF')

四角配色方案

四角配色方案的优点是能够使配图的颜色更加丰富,缺点是使用时具有很大的挑战性,容易造成色彩杂乱,很多用户其实很难平衡自己选择的多种颜色。在科研论文配图的颜色选择过程中,我们要尽量避免使用四角配色方案。
例子
import matplotlib.pyplot as plt
import colorsys

def plot_tetradic_color_scheme(base_color_hex):
    base_color_rgb = [int(base_color_hex[i:i+2], 16) / 255.0 for i in (1, 3, 5)]
    base_color_hsv = colorsys.rgb_to_hsv(*base_color_rgb)

    fig, ax = plt.subplots(figsize=(4, 1))

    # 绘制基本颜色和三个等距离的颜色
    for i in range(4):
        hue = (base_color_hsv[0] + i / 4.0) % 1
        tetradic_color_rgb = colorsys.hsv_to_rgb(hue, base_color_hsv[1], base_color_hsv[2])
        ax.add_patch(plt.Rectangle((i, 0), 1, 1, facecolor=tetradic_color_rgb))

    ax.set_xlim(0, 4)
    ax.set_ylim(0, 1)
    ax.axis('off')
    plt.show()

# Example usage with a base blue color
plot_tetradic_color_scheme('#0000FF')

 颜色主题

Matplotlib 库的颜色主题主要包括 3 种类型:单色系( sequential )、双色渐变色系( diverging
和多色系( qualitative )。

单色系

单色系主题中颜色的色相基本相同,饱和度单调递增。它的主要维度是颜色亮度( lightness ), 一般情况下,较低的数值对应较亮的颜色,较高的数值对应较暗的颜色,这是因为可视化配图往往是在白色或浅色背景上绘制的,而在深色背景中,则会出现相反的情况,即更亮的颜色用更高的数值表示。单色系主题的次要维度是色调(hue),即较暖的颜色出现在较亮的一端,较冷的颜色则会出现在较暗的一端。
例子
import matplotlib.pyplot as plt
import colorsys

def plot_monochromatic_color_scheme(base_color_hex):
    base_color_rgb = [int(base_color_hex[i:i+2], 16) / 255.0 for i in (1, 3, 5)]
    base_color_hsv = colorsys.rgb_to_hsv(*base_color_rgb)

    fig, ax = plt.subplots(figsize=(5, 1))

    # 绘制基本颜色的五个不同明度
    for i in range(5):
        value = 0.5 + i * 0.1 # 调整明度
        monochromatic_color_rgb = colorsys.hsv_to_rgb(base_color_hsv[0], base_color_hsv[1], value)
        ax.add_patch(plt.Rectangle((i, 0), 1, 1, facecolor=monochromatic_color_rgb))

    ax.set_xlim(0, 5)
    ax.set_ylim(0, 1)
    ax.axis('off')
    plt.show()

# Example usage with a base blue color
plot_monochromatic_color_scheme('#00FF00')

 双色渐变色系

双色渐变色系颜色主题主要用在有一个关键中心值( midpoint )的数值变量中,其本质是两个连续单色系的组合,把关键的中心值作为中间点,一般使用白色表示,大于中心值的分配给中间点一侧的颜色,而小于中心值的分配给中间点另一侧的颜色。此外,我们可以通过颜色的深浅进行判断,即中心值通常被指定为浅色,距中心点越远,颜色越深。
例子
import matplotlib.pyplot as plt

def plot_bicolor_gradient_scheme(color1_hex, color2_hex):
    color1_rgb = [int(color1_hex[i:i+2], 16) / 255.0 for i in (1, 3, 5)]
    color2_rgb = [int(color2_hex[i:i+2], 16) / 255.0 for i in (1, 3, 5)]
    white_rgb = [1, 1, 1]

    fig, ax = plt.subplots(figsize=(10, 1))

    # 绘制从color1到白色,再到color2的渐变
    for i in range(10):
        t = i / 9.0
        if t < 0.5:
            t *= 2 # Scale t to [0, 1]
            gradient_color_rgb = [(1-t) * c1 + t * w for c1, w in zip(color1_rgb, white_rgb)]
        else:
            t = (t - 0.5) * 2 # Scale t to [0, 1]
            gradient_color_rgb = [(1-t) * w + t * c2 for w, c2 in zip(white_rgb, color2_rgb)]
        ax.add_patch(plt.Rectangle((i, 0), 1, 1, facecolor=gradient_color_rgb))

    ax.set_xlim(0, 10)
    ax.set_ylim(0, 1)
    ax.axis('off')
    plt.show()

# Example usage with blue and red colors
plot_bicolor_gradient_scheme('#0000FF', '#FF0000')

多色系

当所表示的数据为类别型数值(类别变量)时,我们可以使用多色系颜色主题。
例子
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.colors import LinearSegmentedColormap

def plot_multicolor_gradient(colors_hex):
    # 创建自定义的颜色映射
    cmap = LinearSegmentedColormap.from_list("custom_cmap", colors_hex)

    # 创建渐变条
    gradient = np.linspace(0, 1, 256).reshape(1, -1)
    gradient = np.vstack((gradient, gradient))

    # 绘制渐变条
    fig, ax = plt.subplots(figsize=(8, 1))
    ax.imshow(gradient, aspect="auto", cmap=cmap)
    ax.set_axis_off()
    plt.show()

# Example usage with a set of colors
colors = ['#FF0000', '#FFFF00', '#00FF00', '#00FFFF', '#0000FF']
plot_multicolor_gradient(colors)

配色工具

Color Scheme Designer

主要以色环(色轮)的方式为使用者选择配色,包括单色搭配、互补色搭配、三角形搭配、矩形搭配、类似色搭配和“类似色搭配互补色”6 种色环配色方案。

 工具网址:https://www.wauu.net/tools/ps/

Adobe Color

工具网址:https://color.adobe.com/create/color-wheel 

ColorBrewer 2.0

工具网址:ColorBrewer: Color Advice for Maps 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/895242.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

直线导轨的选购要素

直线导轨是用来支撑和引导运动部件&#xff0c;按给定的方向做往复直线运动&#xff0c;主要用于精密机床、坐标测量机和大型机床&#xff0c;对于我们整个国民生产、生活活动都起着至关重要的作用。 我们在选购直线导轨时&#xff0c;都想要选到质量好的&#xff0c;那么我们要…

【JavaEE基础学习打卡05】JDBC之基本入门就可以了

目录 前言一、JDBC学习前说明1.Java SE中JDBC2.JDBC版本 二、JDBC基本概念1.JDBC原理2.JDBC组件 三、JDBC基本编程步骤1.JDBC操作的数据库准备2.JDBC操作数据库表步骤 四、代码优化1.简单优化2.with-resources探讨 总结 前言 &#x1f4dc; 本系列教程适用于JavaWeb初学者、爱好…

Spring框架之揭秘Bean的生命周期与单例详解【面试题超详细回答】

目录 一、前言 1.1.介绍Spring框架和Bean的概念 二、Bean的实例化阶段 2.1.Bean的实例化过程 2.2.介绍默认构造函数和工厂方法的使用 三、Bean的初始化阶段 3.1.InitializingBean接口和PostConstruct注解的使用 3.2.Bean的初始化方法配置和执行顺序 四、Bean的销毁阶段…

数据库变革:HashData云数仓实现事务级实时性

8月16-18日&#xff0c;第十四届中国数据库技术大会&#xff08;DTCC 2023&#xff09;在北京召开。酷克数据资深解决方案架构师陈义贤在“数据库内核•技术创新”专场发表题为“分布式数仓的TP能力探索—HashData UnionStore”的演讲&#xff0c;介绍HashData以Log is databas…

QT的mysql(数据库)最佳实践和常见问题解答

涉及到数据库&#xff0c;首先安利一个软件Navicat Premium&#xff0c;用来查询数据库很方便 QMysql驱动是Qt SQL模块使用的插件&#xff0c;用于与MySQL数据库进行通信。要编译QMysql驱动&#xff0c;您需要满足以下条件&#xff1a; 您需要安装MySQL的客户端库和开发头文件…

三生ONE物,无限可能|博睿数据上市三周年!

2020年8月17日&#xff0c;北京博睿宏远数据科技股份有限公司作为国内A股市场上的“APM应用性能监控第一股”公司&#xff0c;在科创板荣登上市&#xff01;&#xff08;股票号688229&#xff09; 2023年8月17日&#xff0c;三载日夜更替&#xff0c;博睿一路砥砺前行&#xf…

Eclipse集成MapStruct

Eclipse集成MapStruct 在Eclipse中添加MapStruct依赖配置Eclipse支持MapStruct①安装 m2e-aptEclipse Marketplace的方式安装Install new software的方式安装&#xff08;JDK8用到&#xff09; ②添加到pom.xml 今天拿到同事其他项目的源码&#xff0c;导入并运行的时候抛出了异…

Channel是什么?FileChannel类的常用方法

Channel 是一个接口对象,它类似于传统的流对象,但与传统的流对象又有些不同&#xff0c;具体表现如下: • Channel可以异步地执行I/O读写操作。 • Channel的读写操作是双向的,既可以从 Channel中读取数据,又可以写数据到Channel,而流的读写操作通常都是单向的。 • Channel…

Can‘t find end of central directory : is this a zip file ? at XMLHttpRequest

导出woed出现这个报错,原因其实很简单,路径写错了, 这个word首先必须是docx格式,然后必须放在public文件包下 如果放在public文件包下还没有用,则放在public包下 参考帖子: https://www.cnblogs.com/hejun26/p/13647927.html

VR漫游:720度实景参观,打造魅力生态小区

随着城市的不断发展&#xff0c;小区的建设越发具有生态化、绿色化的特点&#xff0c;人们也会偏向选择更加适合居住的小区。为了让更多的用户体验小区的舒适性&#xff0c;不少地产开发商准备引入VR漫游技术。 VR漫游不仅能够真实地展示现场环境&#xff0c;还可以改变传统网络…

shell编程 基础

将content.txt文件中的内容输出到控制台上 将content.txt中有tom的行输出到控制台 将$2文件中含有gree的行输出到控制台 case语法 简易计算器 查找有root的行 查找以root开头的行 查询时忽略大小写 grep -E 则适用于复杂的正则表达式&#xff0c;可以使用多项选择、重复和子表达…

开发者不可错过的提效工具——低代码开发

开发者不可错过的提效工具 基础低码功能及搭建 01、代码生成器 02、工作流程 03、门户设计 04、大屏设计 05、报表设计 06、第三方登录 07、多租户实现 08、分布式调度 为什么低码平台能够成为开发者的宠儿&#xff1f; 1.低码平台能够大幅提高开发效率 2.低码平台具备高度的可…

QString常用函数介绍

此篇博客核心介绍QT中的QString类型的常用函数&#xff0c;介绍到的函数均从帮助手册或其他博客中看到 QString 字符串类 Header: #include qmake: QT core 一、QString字符串转换 1、QString类字符串转换为整数 int toInt(bool *ok Q_NULLPTR, int base 10) cons…

NOTA标记多肽氨基酸试剂,NOTA-E(cRGDfK)2的化学特性

今日文章关键词&#xff1a;DOTA 偶联肽&#xff0c;NOTA-E(cRGDfK)2&#xff0c;NOTA标记多肽氨基酸试剂 产品描述&#xff1a;DOTATATE acetate 是一种 DOTA 偶联肽&#xff0c;可以被放射性核素标记以用于正电子发射断层扫描 (PET) 成像和肽受体放射性核素治疗 (PRRT)。 英…

LLM的生成配置中参数含义

LLM的生成配置中参数含义 我们在Huggingface中第一次使用大模型的时候,常常会看到一些需要调整的参数,这个参数也是需要了解的。 文中都是来自对于 LLM 一些学习资料的整理 在上图中有 4 个配置的参数分别是 Max new tokens、top-k、top-p以及 Temperature。 token相信大家都…

idea 转换为 Maven Project 的方法

选项&#xff1a; Add as Maven Project

Android 12 源码分析 —— 应用层 一(SystemUI准备篇)

Android 12 源码分析 —— 应用层一&#xff08;SystemUI准备篇&#xff09; 在接下来的时间中&#xff0c;将会使用Pixel 3(blueline)作为研究对象&#xff0c;选用AOSP的android-12.0.0_r34分支作源代码。 先从android的应用层进行探析&#xff0c;然后慢慢深入android的fr…

运维节点CPU飙升问题分析

工作内容,不对外开放 前言 首先问题是这样的,周五正在写文档,突然收到了线上报警,发现cpu占用达到了90多,上平台监控系统查看容器,在jvm监控中发现有一个pod在两个小时内产生了61次youngGc一次fullGc,这个问题特别严重且少见,由于我之前也没有排查过此类问题,所以也是…

8个免费的在线思维导图制作工具推荐,节省时间提高效率!

思维导图&#xff0c;也称为心智图或思维图&#xff0c;最初由英国的心理学家Tony Buzan提出。它是一种图形化的思维工具&#xff0c;旨在帮助我们组织信息、理解知识和激发创新思维。思维导图最大特点是其中心放射式的结构。一张思维导图通常由一个中心主题发散出各个子主题&a…

真知灼见|鲸图知识图谱平台,助力金融业务深度洞察(下)

导语 大数据时代的背景下&#xff0c;数据早就成为数字经济重要的生产资料。对数据的挖掘能力成为企业数字化转型的驱动力。就金融行业来说&#xff0c;如果经营和管理方式跟不上大数据时代的发展脚步就会使得数据价值无法得到充分发挥。知识图谱作为一个结合了知识存储、知识…