python plt 的 scatter 的 marker 有哪一些? plot linestyle 有哪一些?

 

########################################

在 Python 的 matplotlib.pyplot (通常简写为 plt) 中,scatter 的 marker (标记样式) 和 plot 的 linestyle (线条样式) 非常丰富。

为了方便你查阅,我把常用的样式都整理成了表格,并在最后附带了一段可以快速预览所有样式的代码。

1. plt.scatter 的常用 marker (标记样式)

marker 参数决定了散点图中每个点长成什么样。你可以使用字符简写,也可以使用特定的几何图形名称。

字符简写

对应图形

说明

'.'

Point

','

Pixel

像素点(极小)

'o'

Circle

实心圆(最常用)

'v'

Triangle Down

朝下三角形

'^'

Triangle Up

朝上三角形

'<'

Triangle Left

朝左三角形

'>'

Triangle Right

朝右三角形

's'

Square

正方形

'p'

Pentagon

五边形

'*'

Star

五角星

'h' / 'H'

Hexagon

六边形

'+'

Plus

加号

'x'

X

X 形

'D'

Diamond

钻石形/菱形

'd'

Thin Diamond

瘦菱形

`'

'`

Vline

'_'

Hline

水平线

 高级技巧:你甚至可以使用 LaTeX 字符作为标记,例如 marker=r'$\alpha$' 会在图上画出 α 符号;或者传入 (nums, sides) 元组自定义多边形。

2. plt.plot 的 linestyle (线条样式)

linestyle(或缩写 ls)决定了折线图或线性图的线条纹理。主要有以下 4 种基础样式:

字符简写

完整名称

样式效果说明

'-'

'solid'

实线(默认)

'--'

'dashed'

虚线 / 短划线

'-.'

'dashdot'

点划线(线点相间)

':'

'dotted'

点线 / 点状虚线

'' 或 ' '

'None'

无线条(只画点,不连线)

高级技巧:如果你需要更精细的控制,可以传入一个元组自定义虚线的间隔。例如 linestyle=(0, (5, 10)) 表示 (起始偏移量, (5个像素的线, 10个像素的空白))。

3. 快速预览代码

如果你想亲眼看看它们长什么样,可以直接在 Jupyter Notebook 或 Python 脚本中运行下面这段代码:

Python

import matplotlib.pyplot as plt

 

# 1. 预览 linestyle

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

linestyles = ['-', '--', '-.', ':']

for i, ls in enumerate(linestyles):

    plt.plot([0, 5], [i, i], linestyle=ls, line, label=f"ls='{ls}'")

plt.title("Matplotlib Linestyles")

plt.legend()

plt.ylim(-1, len(linestyles))

plt.show()

 

# 2. 预览部分常用 marker

plt.figure(figsize=(10, 3))

markers = ['o', 'v', '^', 's', 'p', '*', 'h', 'x', 'D', '+']

for i, mk in enumerate(markers):

    plt.scatter(i, 1, marker=mk, s=300, label=f"'{mk}'")  # s 为大小

    plt.text(i, 0.8, f"'{mk}'", ha='center')

plt.title("Matplotlib Markers (Selection)")

plt.xlim(-1, len(markers))

plt.ylim(0.5, 1.5)

plt.axis('off')

plt.show()

 

这些样式能够满足绝大多数的数据可视化需求。你目前是在调整哪类图表的样式呢?如果有特殊的定制需求(比如调整标记颜色、边框等),可以告诉我!