導航:首頁 > 編程語言 > python畫地圖畫箭頭

python畫地圖畫箭頭

發布時間:2024-12-14 13:21:11

『壹』 Matplotlib 可視化之箭頭與標注的高級應用

時間線是以時間順序排列的事件列表,其圖形設計通常顯示一個長條,並標有與之平行的日期,用於展示同期的事件。

時間線可以採用任何合適的比例來表示時間,以適應主題和數據。許多人使用線性刻度,其中一個距離單位等於設定的時間量。這種時間刻度取決於時間軸中的事件。

Matplotlib是由John D. Hunter編寫的,首個公開版本於2003年發布。在2012年8月John Hunter去世前,Michael Droettboom被任命為matplotlib的首席開發者,2014年Thomas Caswell加入,目前(2021年)擔任首席開發者。最新版本為3.4,僅支持python 3,而2.2版本是一個長期支持的版本,兼容Python 2和Python 3。

時間線繪圖

時間線繪圖步驟代碼

註解:Matplotlib的zorder屬性決定了物體與前景的距離。zorder值較小的對象出現在更靠近背景的位置,而具有較大值的對象出現在更靠近前面的位置。例如,在製作一個帶有線圖的散點圖時,可以通過增加其zorder來將線向前移動。

標注

要掌握時間軸圖繪制,需要先了解Matplotlib中的標注。標注分為基本標注和高級標注。

關鍵點:箭頭及文本,首先學習下箭頭➡️如何繪制。

箭頭風格

Matplotlib中畫箭頭通常比較困難,推薦使用plt.annotate()函數。該函數既可以創建文字,也可以創建箭頭,並且它創建的箭頭可以進行非常靈活的配置。

箭頭的風格是通過arrowprops字典控制的,其中包含許多可用的選項。由於這些選項在Matplotlib的官方文檔中都有非常詳細的介紹,這里列出一些常用的參數及其設置值。

主要參數:FancyArrowPatch的關鍵字包括:箭頭

箭頭的繪制需要幾個步驟:① 創建兩個點之間的連接路徑,由connectionstyle鍵值控制;② 如果提供了patch對象(patchA和patchB),則會剪切路徑以避開該patch;③ 路徑進一步由提供的像素總量來縮小(shrinkA&shrinkB);④ 路徑轉換為箭頭patch,由arrowstyle鍵值控制。

連接路徑

兩個點之間的連接路徑的創建由connectionstyle鍵控制,並且可用以下樣式。注意,angle3和arc3中的3意味著所得到的路徑是二次樣條段(三個控制點)。當連接路徑是二次樣條時,可以使用一些箭頭樣式選項。

在函數ax.annotate()中的連接路徑的參數arrowprops,而實際控制箭頭樣式的參數是connectionstyle,通過設置不同的connectionstyle以改變不同的箭頭路徑樣式。

例如,我們設置如下參數connectionstyle具體值,並繪制出如下樣式。

箭頭樣式

後根據給定的箭頭樣式將連接路徑(在剪切和收縮之後)變換為箭頭補丁。

在函數ax.annotate()中的箭頭樣式的參數arrowprops,而實際控制箭頭樣式的參數是arrowstyle,通過設置不同的arrowstyle以改變不同的箭頭樣式。

我們可以設置哪些arrowstyle參數呢?可以通過mpatches.ArrowStyle.get_styles()方法查看所有可以設置的樣式。

箭頭位置

xy(箭頭尖端)和xytext位置(文本位置)都以數據坐標為單位。這兩個參數可以通過分別設置xycoords和textcoords來指定xy和xytext的坐標系。

設置xy和xytext的坐標系如下:

通過上述設置完成操作後,設置標注函數:

並且通過上述函數繪制各個事件:

文本注釋

主要參數:matplotlib.text.Text實例有各種屬性,可以通過關鍵字參數配置文本命令(例如,title(),xlabel()和text())。

你可以使用對齊參數horizontalalignment,verticalalignment和multialignment來布置文本。

這里是一個使用text()命令顯示各種對齊方式的例子。在整個代碼中使用transform = ax.transAxes,表示坐標相對於軸邊界框給出,其中0,0是軸的左下角,1,1是右上角。

通過繪制兩個端點及橫線組合,繪制區間線段。

『貳』 python畫箭頭(用內置的函數)怎麼畫

你用的graphics模塊?這不是內置的,雖然它是調用內置的Tkinter畫圖。

option可以是"first","last","both"或"none"。見graphics.py:

def setArrow(self, option):
if not option in ["first","last","both","none"]:
raise GraphicsError(BAD_OPTION)
self._reconfig("arrow", option)

細節要查Tk文檔:

6.6. The canvas line object
In general, a line can consist of any number of segments connected end to end, and each segment can be straight or curved. To create a canvas line object on a canvas C, use:
id = C.create_line ( x0, y0, x1, y1, ..., xn, yn, option, ... )
The line goes through the series of points
(x0,
y0),
(x1,
y1),

(xn,
yn).
Options include:
arrow The default is for the line to have no arrowheads. Use
arrow=FIRST to get an arrowhead at the(x0,y0)end of the line. Use
arrow=LAST to get an arrowhead at the far end. Use
arrow=BOTH for arrowheads at both ends.

『叄』 python怎樣把箭頭變為紅色

添加相同的箭頭補丁。
在創建箭頭時,streamplot似乎做了兩件事,將箭頭面片(類型FancyArrowPatch)添加到軸向PatchCollection(c.arrows)添加相同的箭頭補丁。
雖然axisartist能夠很方便地自定義坐標軸的位置和完美地設置箭頭,但對於更多屬性的設置有點乏力,很多參數的微調還是很花費時間的。

『肆』 Python的turtle庫畫圖使用中的問題

『伍』 python數據可視化: 繪制箭頭 matplotlib.pyplot.arrow()

【小白從小學Python、C、Java】 【考研初試+復試+畢業設計】 【Python基礎+AI+數據分析】 python數據可視化: 繪制箭頭 matplotlib.pyplot.arrow()

請問關於以下代碼表述正確的選項是? import matplotlib.pyplot as plt print("【執行】plt.arrow(0, 0, 1, 1, head_width=0.1, head_length=0.1)") plt.arrow(0, 0, 1, 1, head_width=0.1, head_length=0.1) plt.xlim(0, 2) plt.ylim(0, 2) plt.show()

A選項:plt.arrow()用於繪制箭頭 B選項:plt.arrow()用於創建折線圖 C選項:plt.arrow()用於顯示圖像 D選項:plt.arrow()用於創建熱力圖

正確答案是:A

圖1 問題解析

圖2 題目代碼

[太陽]溫馨期待 期待大家提出寶貴建議,互相交流,收獲更大,助教:lxy

閱讀全文

與python畫地圖畫箭頭相關的資料

熱點內容
c通過編譯後形成的擴展名 瀏覽:430
java字元的unicode編碼 瀏覽:404
密碼每次加密都不一樣 瀏覽:440
函數化編程的作用 瀏覽:955
車鑰匙解壓神器 瀏覽:150
matlabbfgs演算法 瀏覽:576
java並發編程藝術pdf 瀏覽:850
android自定義scrollview 瀏覽:838
php函數fread 瀏覽:22
解壓神器桌面版 瀏覽:214
android技術網站 瀏覽:408
有什麼安卓平板打游戲好 瀏覽:524
破碎壓縮制塊設備 瀏覽:783
python中表示顏色的兩種方式 瀏覽:352
應用圖像命令 瀏覽:171
用python解決愚人節的禮物 瀏覽:445
查看遠程電腦伺服器地址 瀏覽:522
解壓後怎麼知道歸檔 瀏覽:179
s8視頻加密路線在線 瀏覽:245
mc雲伺服器怎麼安模組 瀏覽:384