簡體   English   中英

matplotlib.pyplot.plot() 如何連接散點?

[英]How does matplotlib.pyplot.plot() connect scatter points?

當我們在 matplotlib 中使用pyplot.plot(x, y)時,默認繪制一條連接所有點(頂點)的線 plot。 我想了解, plot()究竟是如何做到的? 它如何連接點? 它是否使用類似 Bresenham 的 Line 算法來實現這一點?

Matplotlib 除了按照給定的順序連接點外,什么也不做

您傳遞了兩個具有 x 和 y 坐標的 arrays 。 Matplotlib 取第一個點 (x1,y1) 並畫一條線到第二對 (x2,y2),然后從第二對到第三對,依此類推,直到最后一對

x = [1,2,3]
y = [1,5,2]
plt.plot(x,y, 'ro-')

在此處輸入圖像描述

如果我plot兩點,我得到一個包含Line object 的列表

In [58]: g=plt.gca()                                                                           
In [59]: g                                                                                     
Out[59]: <matplotlib.axes._subplots.AxesSubplot at 0x7fce94a26400>
In [60]: g.plot([0,1],[1,2])                                                                   
Out[60]: [<matplotlib.lines.Line2D at 0x7fce94a26160>]

https://matplotlib.org/api/_as_gen/matplotlib.lines.Line2D.html#matplotlib.lines.Line2D

這又具有許多屬性和方法,盡管一個特別相關的似乎是Path object

In [67]: aline._path                                                                           
Out[67]: 
Path(array([[0., 1.],
       [1., 2.]]), None)
In [68]: aline._path.__dict__                                                                  
Out[68]: 
{'_vertices': array([[0., 1.],
        [1., 2.]]),
 '_codes': None,
 '_interpolation_steps': 1,
 '_simplify_threshold': 0.1111111111111111,
 '_should_simplify': False,
 '_has_nonfinite': False,
 '_readonly': False}

https://matplotlib.org/api/path_api.html#matplotlib.path.Path

請注意,它的代碼類型包括畫筆方向,例如: move toline to 圖形后端通常采用以下命令:“將筆放在 x”、“將線畫到 y”、“抬起筆”。 后端負責插入 x 和 y 之間的點,而不是命令代碼。 在這種情況下,您無法訪問edge

雖然它不使用matplotlib ,但您可能會發現turtle圖形 package 具有指導意義。 這使您可以直接控制繪圖pen

https://docs.python.org/3/library/turtle.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM