當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python matplotlib plot用法及代碼示例


本文簡要介紹 python 語言中 matplotlib.pyplot.plot 的用法。

用法

matplotlib.pyplot.plot(*args, scalex=True, scaley=True, data=None, **kwargs)

將 y 與 x 繪製為線條和/或標記。

調用簽名:

plot([x], y, [fmt], *, data=None, **kwargs)
plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)

點或線節點的坐標由 xy 給出。

可選參數fmt 是定義顏色、標記和線型等基本格式的便捷方式。這是下麵Notes 部分中說明的快捷字符串表示法。

>>> plot(x, y)        # plot x and y using default line style and color
>>> plot(x, y, 'bo')  # plot x and y using blue circle markers
>>> plot(y)           # plot y using x as index array 0..N-1
>>> plot(y, 'r+')     # ditto, but with red plusses

您可以使用 Line2D 屬性作為關鍵字參數來更好地控製外觀。線屬性和fmt 可以混合使用。以下兩個調用產生相同的結果:

>>> plot(x, y, 'go--', linewidth=2, markersize=12)
>>> plot(x, y, color='green', marker='o', linestyle='dashed',
...      linewidth=2, markersize=12)

當與 fmt 衝突時,關鍵字參數優先。

繪製標記數據

有一種方便的方法可以繪製帶有標記數據的對象(即可以通過索引 obj['y'] 訪問的數據)。除了在 xy 中提供數據之外,您還可以在 data 參數中提供對象,並隻提供 xy 的標簽:

>>> plot('xlabel', 'ylabel', data=obj)

支持所有可索引對象。這可以例如是 dict pandas.DataFrame 或結構化的 numpy 數組。

繪製多組數據

有多種方法可以繪製多組數據。

  • 最直接的方法就是多次調用plot。例子:

    >>> plot(x1, y1, 'bo')
    >>> plot(x2, y2, 'go')
  • 如果x 和/或y 是二維數組,將為每一列繪製一個單獨的數據集。如果 xy 都是二維的,則它們必須具有相同的形狀。如果其中隻有一個是形狀為 (N, m) 的 2D,則另一個必須具有長度 N 並將用於每個數據集 m。

    例子:

    >>> x = [1, 2, 3]
    >>> y = np.array([[1, 2], [3, 4], [5, 6]])
    >>> plot(x, y)

    相當於:

    >>> for col in range(y.shape[1]):
    ...     plot(x, y[:, col])
  • 第三種方法是指定多組 [x]y[fmt] 組:

    >>> plot(x1, y1, 'g^', x2, y2, 'g-')

    在這種情況下,任何附加關鍵字參數都適用於所有數據集。此外,此語法不能與data 參數組合。

默認情況下,每行都分配有由'style cycle' 指定的不同樣式。這fmt僅當您希望顯式偏離這些默認值時,才需要和 line 屬性參數。或者,您也可以使用更改樣式周期rcParams["axes.prop_cycle"](默認:cycler('color', ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf']))。

參數
x, y 類似數組或標量

數據點的水平/垂直坐標。 x 值是可選的,默認為 range(len(y))

通常,這些參數是一維數組。

它們也可以是標量或二維的(在這種情況下,列表示單獨的數據集)。

這些參數不能作為關鍵字傳遞。

fmt str,可選

格式字符串,例如'ro' 用於紅色圓圈。有關格式字符串的完整說明,請參閱Notes 部分。

格式字符串隻是快速設置基本行屬性的縮寫。所有這些以及更多也可以通過關鍵字參數來控製。

此參數不能作為關鍵字傳遞。

data 可索引對象,可選

帶有標簽數據的對象。如果給定,請提供要在 xy 中繪製的標簽名稱。

注意

從技術上講,在第二個標簽是有效的 fmt 的調用中存在輕微的歧義。 plot('n', 'o', data=obj) 可以是 plt(x, y)plt(y, fmt) 。在這種情況下,會選擇前一種解釋,但會發出警告。您可以通過添加空格式字符串 plot('n', 'o', '', data=obj) 來抑製警告。

返回
Line2D 列表

表示繪製數據的線列表。

其他參數
scalex, scaley 布爾值,默認值:真

這些參數確定視圖限製是否適應數據限製。這些值被傳遞給 autoscale_view

**kwargs Line2D 屬性,可選

kwargs 用於指定線標簽(用於自動圖例)、線寬、抗鋸齒、標記麵顏色等屬性。例子:

>>> plot([1, 2, 3], [1, 2, 3], 'go-', label='line 1', linewidth=2)
>>> plot([1, 2, 3], [1, 4, 9], 'rs', label='line 2')

如果您在一次繪圖調用中指定多行,則 kwargs 適用於所有這些行。如果標簽對象是可迭代的,則每個元素都用作每組數據的標簽。

以下是可用的 Line2D 屬性列表:

屬性

說明

agg_filter

一個過濾器函數,它接受一個 (m, n, 3) 浮點數組和一個 dpi 值,並返回一個 (m, n, 3) 數組和距圖像左下角的兩個偏移量

alpha

標量或無

animated

bool

antialiased 或 aa

bool

clip_box

BboxBase 或無

clip_on

bool

clip_path

補丁或(路徑,變換)或無

color 或 c

color

dash_capstyle

CapStyle 或 {'butt', 'projecting', 'round'}

dash_joinstyle

JoinStyle 或 {'miter', 'round', 'bevel'}

dashes

浮點數序列(以點為單位的開/關墨水)或(無,無)

data

(2, N) 數組或兩個一維數組

drawstyle 或 ds

{'default', 'steps', 'steps-pre', 'steps-mid', 'steps-post'},默認:'default'

figure

Figure

fillstyle

{'full', 'left', 'right', 'bottom', 'top', 'none'}

gapcolor

顏色或無

gid

str

in_layout

bool

label

object

linestyle 或 ls

{'-', '--', '-.', ':', '', (offset, on-off-seq), ...}

linewidth 或 lw

float

marker

標記樣式字符串, Path MarkerStyle

markeredgecolor 或機械

color

markeredgewidth 或喵喵

float

markerfacecolor 或 mfc

color

markerfacecoloralt 或 mfcalt

color

markersize 或毫秒

float

markevery

None 或 int 或 (int, int) 或 slice 或 list[int] 或 float 或 (float, float) 或 list[bool]

mouseover

bool

path_effects

AbstractPathEffect 列表

picker

浮點數或可調用[[藝術家,事件],元組[布爾,字典]]

pickradius

float

rasterized

bool

sketch_params

(比例:浮點數,長度:浮點數,隨機性:浮點數)

snap

布爾或無

solid_capstyle

CapStyle 或 {'butt', 'projecting', 'round'}

solid_joinstyle

JoinStyle 或 {'miter', 'round', 'bevel'}

transform

unknown

url

str

visible

bool

xdata

一維數組

ydata

一維數組

zorder

float

注意

格式化字符串

格式字符串由顏色、標記和線條部分組成:

fmt = '[marker][line][color]'

它們中的每一個都是可選的。如果未提供,則使用樣式循環中的值。異常:如果給出 line 但沒有給出 marker ,則數據將是沒有標記的行。

還支持其他組合,例如 [color][marker][line],但請注意,它們的解析可能不明確。

標記

字符

說明

'.'

點標記

','

像素標記

'o'

圓圈標記

'v'

triangle_down 標記

'^'

triangle_up 標記

'<'

triangle_left 標記

'>'

triangle_right 標記

'1'

tri_down 標記

'2'

tri_up 標記

'3'

tri_left 標記

'4'

tri_right 標記

'8'

八角形標記

's'

方形標記

'p'

五邊形標記

'P'

加(填充)標記

'*'

星標

'h'

hexagon1 標記

'H'

hexagon2 標記

'+'

加號標記

'x'

x 標記

'X'

x(填充)標記

'D'

鑽石標記

'd'

thin_diamond 標記

'|'

線標記

'_'

線標記

線型

字符

說明

'-'

實線樣式

'--'

虛線樣式

'-.'

dash-dot線型

':'

虛線樣式

示例格式字符串:

'b'    # blue markers with default shape
'or'   # red circles
'-g'   # green solid line
'--'   # dashed line with default color
'^k:'  # black triangle_up markers connected by a dotted line

顏色

支持的顏色縮寫是單字母代碼

字符

顏色

'b'

blue

'g'

green

'r'

red

'c'

cyan

'm'

magenta

'y'

yellow

'k'

black

'w'

white

以及索引到默認屬性周期的'CN' 顏色。

如果顏色是格式字符串的唯一部分,您還可以使用任何 matplotlib.colors 規範,例如全名 ('green') 或十六進製字符串 ('#008000')。

相關用法


注:本文由純淨天空篩選整理自skytowner.com大神的英文原創作品 matplotlib.pyplot.plot。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。