【python】Matplotlib作图常用marker类型、线型和颜色

python作图中常常会考虑用什么颜色、marker、线型,这个资料查了又查,所以自己总结在这个地方,以便常用。

一、常用marker表示

1.普通marker

这类普通marker直接marker ='^'就可以用了

2.高级marker

这类高级marker使用marker ='$\circledR$'来调用

可以显示的形状    marker名称
ϖ   \varpi
ϱ   \varrho
ς   \varsigma
ϑ   \vartheta
ξ   \xi
ζ   \zeta
Δ   \Delta
Γ   \Gamma
Λ   \Lambda
Ω   \Omega
Φ   \Phi
Π   \Pi
Ψ   \Psi
Σ   \Sigma
Θ   \Theta
Υ   \Upsilon
Ξ   \Xi
℧   \mho
∇   \nabla
ℵ   \aleph
ℶ   \beth
ℸ   \daleth
ℷ   \gimel
/   /
[   [
⇓   \Downarrow
⇑   \Uparrow
‖   \Vert
↓   \downarrow
⟨   \langle
⌈   \lceil
⌊   \lfloor
⌞   \llcorner
⌟   \lrcorner
⟩   \rangle
⌉   \rceil
⌋   \rfloor
⌜   \ulcorner
↑   \uparrow
⌝   \urcorner
\vert
{   \{
\|
}   \}
]   ]
|
⋂   \bigcap
⋃   \bigcup
⨀   \bigodot
⨁   \bigoplus
⨂   \bigotimes
⨄   \biguplus
⋁   \bigvee
⋀   \bigwedge
∐   \coprod
∫   \int
∮   \oint
∏   \prod
∑   \sum

3.自定义marker

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']  # 用于显示中文
plt.rcParams['axes.unicode_minus'] = False  # 用于显示中文
plt.figure(dpi=200)
#常规marker使用
plt.plot([1,2,3],[1,2,3],marker=4, markersize=15, color='lightblue',label='常规marker')
plt.plot([1.8,2.8,3.8],[1,2,3],marker='2', markersize=15, color='#ec2d7a',label='常规marker')

#非常规marker使用
#注意使用两个$符号包围名称
plt.plot([1,2,3],[4,5,6],marker='$\circledR$', markersize=15, color='r', alpha = 0.5 ,label='非常规marker')
plt.plot([1.5,2.5,3.5],[1.25,2.1,6.5],marker='$\heartsuit$', markersize=15, color='#f19790', alpha=0.5,label='非常规marker')
plt.plot([1,2,3],[2.5,6.2,8],marker='$\clubsuit$', markersize=15, color='g', alpha=0.5,label='非常规marker')

#自定义marker
plt.plot([1.2,2.2,3.2],[1,2,3],marker='$666$', markersize=15, color='#2d0c13',label='自定义marker')
plt.legend(loc='upper left')
for i in ['top','right']:
    plt.gca().spines[i].set_visible(False)

作图结果为:

二、常用线型

1.字符型linestyle

共有四种:

linestyle_str = [
('solid', 'solid'), # Same as (0, ()) or '-';solid’, (0, ()) , '-'三种都代表实线。
('dotted', 'dotted'), # Same as (0, (1, 1)) or '.'
('dashed', 'dashed'), # Same as '--'
('dashdot', 'dashdot')] # Same as '-.'

2.元组型linestyle

可以通过修改元组中的数字来呈现出不同的线型,因此可以构造出无数种线型。

linestyle_tuple = [
('loosely dotted', (0, (1, 10))),
('dotted', (0, (1, 1))),
('densely dotted', (0, (1, 2))), ('loosely dashed', (0, (5, 10))),
('dashed', (0, (5, 5))),
('densely dashed', (0, (5, 1))), ('loosely dashdotted', (0, (3, 10, 1, 10))),
('dashdotted', (0, (3, 5, 1, 5))),
('densely dashdotted', (0, (3, 1, 1, 1))), ('dashdotdotted', (0, (3, 5, 1, 5, 1, 5))),
('loosely dashdotdotted', (0, (3, 10, 1, 10, 1, 10))),
('densely dashdotdotted', (0, (3, 1, 1, 1, 1, 1)))]

线型使用代码:

import matplotlib.pyplot as plt
plt.figure(dpi=120)
#字符型linestyle使用方法
plt.plot([1,2,3],[1,2,13],linestyle='dotted', color='#1661ab', linewidth=5, label='字符型线型:dotted')

#元组型lintstyle使用方法 
plt.plot([0.8,0.9,1.5],[0.8,0.9,21.5],linestyle=(0,(3, 1, 1, 1, 1, 1)), color='#ec2d7a', linewidth=5, label='元组型线型:(0,(3, 1, 1, 1, 1, 1)')

for i in ['top','right']:
    plt.gca().spines[i].set_visible(False)
    
#自定义inestyle  
plt.plot([1.5,2.5,3.5],[1,2,13],linestyle=(0,(1,2,3,4,2,2)), color='black', linewidth=5, label='自定义线型:(0,(1,2,3,4,2,2)))')
plt.plot([2.5,3.5,4.5],[1,2,13],linestyle=(2,(1,2,3,4,2,2)), color='g', linewidth=5, label='自定义线型:(1,(1,2,3,4,2,2)))')
plt.legend()

作图结果为:

3.元组型详解

上图中线型(0,(1,2,3,4,2,2))每个数字是什么意思?理解每个数字的意思就可以自定义线型了。

第一个0的意义,比较黑色和绿色线型即可知道

1,2 第一小段线宽1磅,第一和第二段之间距离2磅

3,4 第二小段线宽3磅,第二和第三段之间距离4磅

2,2 第三小段线宽2磅,第三和第四段之间距离2磅

三、常用颜色

装了seaborn扩展的话,在字典seaborn.xkcd_rgb中包含所有的xkcd crowdsourced color names

### 关于 `plt` `plot` 的区别 在 Python 中,`plt` 是 Matplotlib 库中的一个常用模块名称缩写,而 `plot` 则是该模块下的一个重要函数。以下是两者的主要差异及其使用场景: #### 1. **定义与导入** - `plt` 并不是一个内置对象或类名,而是通过以下方式引入的一个模块别名: ```python import matplotlib.pyplot as plt ``` 这里的 `as plt` 表示将 `matplotlib.pyplot` 模块命名为 `plt`,以便后续调用更加简洁[^1]。 - `plot` 是 `matplotlib.pyplot` 模块中的核心绘图方法之一,用于创建二维图表。它通常被用来绘制连续的数据点,并自动连接这些点形成一条或多条曲线[^2]。 #### 2. **功能对比** - **`plt`**: 它代表整个 `pyplot` 子库的功能集合,除了提供基本的绘图工具外,还支持设置图形属性(如标题、坐标轴标签)、保存图像文件以及显示最终的结果等操作。 - 示例代码片段展示了如何利用 `plt` 来完成更复杂的配置任务: ```python plt.title('Sine Wave') plt.xlabel('Angle [radians]') plt.ylabel('sin(x)') ``` - **`plot`**: 主要专注于实际的数据呈现部分,接受输入参数包括横纵坐标的数值列表或者数组,还可以指定样式选项来调整颜色线型等方面的表现形式。 - 下面的例子说明了怎样简单地调用 `plot()` 方法生成一幅基础正弦波形图: ```python x = np.linspace(0, 2 * np.pi, 50) y = np.sin(x) plt.plot(x, y) plt.show() ``` #### 3. **适用场合** - 当只需要快速构建简单的可视化效果时,可以直接运用单一命令行内的 `plot()` 调用即可满足需求;但如果涉及更多自定义化的要求,则需借助完整的 `plt` 接口来进行全方位控制[^1]^. 总结来说,在日常编程实践中,“`plt`”作为整体框架代指,“`plot`”则具体指向其中某项特定技能——即作图行为本身。理解两者的角色定位有助于更好地掌握Matplotlib这一强大工具的实际应用技巧[^2]. ```python import numpy as np import matplotlib.pyplot as plt # 数据准备 x_values = np.arange(0, 10, 0.1) squares = [val**2 for val in x_values] # 使用 plot 函数绘制二次方程曲线 plt.plot(x_values, squares, color='red', linestyle='--', marker='o') # 配置图形细节 (由 plt 提供的支持) plt.title("Square Numbers", fontsize=24) plt.xlabel("Value", fontsize=14) plt.ylabel("Square of Value", fontsize=14) # 展现结果 plt.grid(True) plt.show() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值