本文目錄一覽:
- 1、用python 畫一個網格
- 2、python繪圖篇
- 3、python中如何建立plt
- 4、用Python畫圖
- 5、如何在Python的繪圖中繪製網格
- 6、請問怎麼用Python畫柵格地圖,類似下面這樣的圖,激光會返回障礙物的位置信息
用python 畫一個網格
print 函數是輸出字符串,所以用 print 輸出形成的 grid 其實質是具有某特定形狀的 字符串 ,而 plt.grid() 繪製出的網格是 圖片。
字符串 是可以用文字處理軟件(如 word、記事本等)直接編輯處理的,而 圖片 則只能用圖片編輯軟件(如畫筆)打開處理。
如問題所要求的最簡單的“編寫一個能畫出如下網格(grid)的函數”代碼,可以簡單的用 print 函數就可以了:
代碼執行效果:
python繪圖篇
1,xlable,ylable設置x,y軸的標題文字。
2,title設置標題。
3,xlim,ylim設置x,y軸顯示範圍。
plt.show()顯示繪圖窗口,通常情況下,show()會阻礙程序運行,帶-wthread等參數的環境下,窗口不會關閉。
plt.saveFig()保存圖像。
面向對象繪圖
1,當前圖表和子圖可以用gcf(),gca()獲得。
subplot()繪製包含多個圖表的子圖。
configure subplots,可調節子圖與圖表邊框距離。
可以通過修改配置文件更改對象屬性。
圖標顯示中文
1,在程序中直接指定字體。
2, 在程序開始修改配置字典reParams.
3,修改配置文件。
Artist對象
1,圖標的繪製領域。
2,如何在FigureCanvas對象上繪圖。
3,如何使用Renderer在FigureCanvas對象上繪圖。
FigureCanvas和Render處理底層圖像操作,Artist處理高層結構。
分為簡單對象和容器對象,簡單的Aritist是標準的繪圖元件,例如Line 2D,Rectangle,Text,AxesImage等,而容器類型包含許多簡單的的 Aritist對象,使他們構成一個整體,例如Axis,Axes,Figure等。
直接創建Artist對象進項繪圖操作步奏:
1,創建Figure對象(通過figure()函數,會進行許多初始化操作,不建議直接創建。)
2,為Figure對象創建一個或多個Axes對象。
3,調用Axes對象的方法創建各類簡單的Artist對象。
Figure容器
如何找到指定的Artist對象。
1,可調用add_subplot()和add_axes()方法向圖表添加子圖。
2,可使用for循環添加柵格。
3,可通過transform修改坐標原點。
Axes容器
1,patch修改背景。
2,包含坐標軸,坐標網格,刻度標籤,坐標軸標題等內容。
3,get_ticklabels(),,get-ticklines獲得刻度標籤和刻度線。
1,可對曲線進行插值。
2,fill_between()繪製交點。
3,坐標變換。
4,繪製陰影。
5,添加註釋。
1,繪製直方圖的函數是
2,箱線圖(Boxplot)也稱箱須圖(Box-whisker Plot),是利用數據中的五個統計量:最小值、第一四分位
數、中位數、第三四分位數與最大值來描述數據的一種方法,它可以粗略地看出數據是否具有對稱性以及分
布的分散程度等信息,特別可以用於對幾個樣本的比較。
3,餅圖就是把一個圓盤按所需表達變量的觀察數劃分為若干份,每一份的角度(即面積)等價於每個觀察
值的大小。
4,散點圖
5,QQ圖
低層繪圖函數
類似於barplot(),dotchart()和plot()這樣的函數採用低層的繪圖函數來畫線和點,來表達它們在頁面上放置的位置以及其他各種特徵。
在這一節中,我們會描述一些低層的繪圖函數,用戶也可以調用這些函數用於繪圖。首先我們先講一下R怎麼描述一個頁面;然後我們講怎麼在頁面上添加點,線和文字;最後講一下怎麼修改一些基本的圖形。
繪圖區域與邊界
R在繪圖時,將顯示區域劃分為幾個部分。繪製區域顯示了根據數據描繪出來的圖像,在此區域內R根據數據選擇一個坐標系,通過顯示出來的坐標軸可以看到R使用的坐標系。在繪製區域之外是邊沿區,從底部開始按順時針方向分別用數字1到4表示。文字和標籤通常顯示在邊沿區域內,按照從內到外的行數先後顯示。
添加對象
在繪製的圖像上還可以繼續添加若干對象,下面是幾個有用的函數,以及對其功能的說明。
•points(x, y, …),添加點
•lines(x, y, …),添加線段
•text(x, y, labels, …),添加文字
•abline(a, b, …),添加直線y=a+bx
•abline(h=y, …),添加水平線
•abline(v=x, …),添加垂直線
•polygon(x, y, …),添加一個閉合的多邊形
•segments(x0, y0, x1, y1, …),畫線段
•arrows(x0, y0, x1, y1, …),畫箭頭
•symbols(x, y, …),添加各種符號
•legend(x, y, legend, …),添加圖列說明
python中如何建立plt
python中建立plt步驟如下。
1、獲取數據,設置畫布,繪製內容,設置坐標軸刻度,添加網格。
2、添加圖例,添加坐標軸名稱和圖像標題,保存和展示。
用Python畫圖
今天開始琢磨用Python畫圖,沒使用之前是一臉懵的,我使用的開發環境是Pycharm,這個輸出的是一行行命令,這個圖畫在哪裡呢?
搜索之後發現,它會彈出一個對話框,然後就開始畫了,比如下圖
第一個常用的庫是Turtle,它是Python語言中一個很流行的繪製圖像的函數庫,這個詞的意思就是烏龜,你可以想象下一個小烏龜在一個x和y軸的平面坐標系裡,從原點開始根據指令控制,爬行出來就是繪製的圖形了。
它最常用的指令就是旋轉和移動,比如畫個圓,就是繞着圓心移動;再比如上圖這個怎麼畫呢,其實主要就兩個命令:
turtle.forward(200)
turtle.left(170)
第一個命令是移動200個單位並畫出來軌跡
第二個命令是畫筆順時針轉170度,注意此時並沒有移動,只是轉角度
然後呢? 循環重複就畫出來這個圖了
好玩吧。
有需要仔細研究的可以看下這篇文章 ,這個牛人最後用這個庫畫個移動的鐘錶,太贊了。
Turtle雖好玩,但是我想要的是我給定數據,然後讓它畫圖,這裡就找到另一個常用的畫圖的庫了。
Matplotlib是python最著名的繪圖庫,它提供了一整套和matlab相似的命令API,十分適合交互式地行製圖。其中,matplotlib的pyplot模塊一般是最常用的,可以方便用戶快速繪製二維圖表。
使用起來也挺簡單,
首先import matplotlib.pyplot as plt 導入畫圖的圖。
然後給定x和y,用這個命令plt.plot(x, y)就能畫圖了,接着用plt.show()就可以把圖形展示出來。
接着就是各種完善,比如加標題,設定x軸和y軸標籤,範圍,顏色,網格等等,在 這篇文章里介紹的很詳細。
現在互聯網的好處就是你需要什麼內容,基本上都能搜索出來,而且還是免費的。
我為什麼要研究這個呢?當然是為了用,比如我把比特幣的曲線自己畫出來可好?
假設現在有個數據csv文件,一列是日期,另一列是比特幣的價格,那用這個命令畫下:
這兩列數據讀到pandas中,日期為df[‘time’]列,比特幣價格為df[‘ini’],那我只要使用如下命令
plt.plot(df[‘time’], df[‘ini’])
plt.show()
就能得到如下圖:
自己畫的是不是很香,哈哈!
然後呢,我在上篇文章 中介紹過求Ahr999指數,那可不可以也放到這張圖中呢?不就是加一條命令嘛
plt.plot(df[‘time’], df[‘Ahr999’])
圖形如下:
但是,Ahr999指數怎麼就一條線不動啊, 原來兩個Y軸不一致,顯示出來太怪了,需要用多Y軸,問題來了。
繼續谷歌一下,把第二個Y軸放右邊就行了,不過呢得使用多圖,重新繪製
fig = plt.figure() # 多圖
ax1 = fig.add_subplot(111)
ax1.plot(df[‘time’], df[‘ini’], label=”BTC price”) # 繪製第一個圖比特幣價格
ax1.set_ylabel(‘BTC price’) # 加上標籤
# 第二個直接對稱就行了
ax2 = ax1.twinx()# 在右邊增加一個Y軸
ax2.plot(df[‘time’], df[‘Ahr999’], ‘r’, label=”ahr999″) # 繪製第二個圖Ahr999指數,紅色
ax2.set_ylim([0, 50])# 設定第二個Y軸範圍
ax2.set_ylabel(‘ahr999’)
plt.grid(color=”k”, linestyle=”:”)# 網格
fig.legend(loc=”center”)#圖例
plt.show()
跑起來看看效果,雖然丑了點,但終於跑通了。
這樣就可以把所有指數都繪製到一張圖中,等等,三個甚至多個Y軸怎麼加?這又是一個問題,留給愛思考愛學習的你。
有了自己的數據,建立自己的各個指數,然後再放到圖形界面中,同時針對異常情況再自動進行提醒,比如要抄底了,要賣出了,用程序做出自己的晴雨表。
如何在Python的繪圖中繪製網格
繪製3D柱狀圖,其數據格式為,二維數組或三維數組。
繪製熱圖:
繪製曲面圖
繪製曲線圖
請問怎麼用Python畫柵格地圖,類似下面這樣的圖,激光會返回障礙物的位置信息
你用的是激光雷達吧。 雷達應該本身可以形成周圍物體的反饋。
所以需要一個圖像識別算法識別出障礙物是什麼。然後標誌出來。
這個沒有做過。不過都是現成的算法。 找一找就可以找到。
如果沒有找到可以按下面的思路去做:
雷達應該可以返回目標物的距離,以及反射強度。可以使用PIL,製作一個IMAGE。根據距離角度計算出點的位置,根據反射強度計算出它的灰度值。0-255的範圍。
下面是計算障礙物。 通常可以簡化算法。 比如連續灰度值過10且超過2-3個像素則為目標障礙物。還可以加上距離判斷。比如距離15厘米以內的才算是障礙物。
另外灰度值與範圍可以做一個判斷矩陣。低灰度值。
有了障礙物,只需要計算圖像中心點。然後在周圍畫個矩形。
最後把IMAGE畫出來。可以用PIL,也可以用opencv的函數。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/247868.html