matplotlib 的绘图函数中的“o-”是什么意思?

Pum*_*n C 2 python matplotlib

我正在使用以下代码绘制一条简单的线条。我不明白 plot 函数中这个 'o-' 的含义是什么。

import pylab as plt
import seaborn

x = np.linspace(0, 2, 10)
plt.plot(x, 'o-');
plt.show()
Run Code Online (Sandbox Code Playgroud)

E. *_*eme 5

这两个字符是标记类型和您希望绘制的线类型的说明符。

o会产生一个小圆圈。

-会产生一个实线连接的标记。

有关说明符类型的完整列表,请参阅此站点:https : //matplotlib.org/api/_as_gen/matplotlib.pyplot.plot.html#matplotlib.pyplot.plot

character description
'-'       solid line style
'--'      dashed line style
'-.'      dash-dot line style
':'       dotted line style
'.'       point marker
','       pixel marker
'o'       circle marker
'v'       triangle_down marker
'^'       triangle_up marker
'<'       triangle_left marker
'>'       triangle_right marker
'1'       tri_down marker
'2'       tri_up marker
'3'       tri_left marker
'4'       tri_right marker
's'       square marker
'p'       pentagon marker
'*'       star marker
'h'       hexagon1 marker
'H'       hexagon2 marker
'+'       plus marker
'x'       x marker
'D'       diamond marker
'd'       thin_diamond marker
'|'       vline marker
'_'       hline marker
Run Code Online (Sandbox Code Playgroud)

您还可以提供颜色指示器:

‘b’     blue
‘g’     green
‘r’     red
‘c’     cyan
‘m’     magenta
‘y’     yellow
‘k’     black
‘w’     white
Run Code Online (Sandbox Code Playgroud)


Imp*_*est 5

直到最近,文档对格式字符串还不是很清楚。好消息是,它现在已经完全重新设计,并包含一个完整的部分来解释它们。

我将简单地引用plot文档

呼叫签名:

plot([x], y, [fmt], data=None, **kwargs)
Run Code Online (Sandbox Code Playgroud)

格式化字符串

格式字符串由颜色、标记和线条部分组成:

fmt = '[color][marker][line]'
Run Code Online (Sandbox Code Playgroud)

它们中的每一个都是可选的。如果未提供,则使用样式循环中的值。例外:如果给出了行,但没有标记,则数据将是没有标记的行。

有关可能的缩写格式字符串的完整集,请参阅文档

格式字符串示例:

'b'    # blue markers with default shape
'ro'   # red circles
'g-'   # green solid line
'--'   # dashed line with default color
'k^:'  # black triangle_up markers connected by a dotted line
Run Code Online (Sandbox Code Playgroud)


此处,"o-"具有格式fmt = '[marker][line]'并生成一个点作为标记和一条实线来连接点。

请注意,格式字符串使用起来可能会令人困惑,因此所有选项都可以通过常用的关键字参数来设置,

plot(y, fmt='[color][marker][line]')
Run Code Online (Sandbox Code Playgroud)

相当于

plot(y, color="[color]", marker="[marker]", linestyle="[line]")
Run Code Online (Sandbox Code Playgroud)

所以在这种情况下,您可能想要使用

plot(y, marker="o", linestyle="-")
Run Code Online (Sandbox Code Playgroud)