導航:首頁 > 編程語言 > python繪制散點圖

python繪制散點圖

發布時間:2024-10-11 21:30:05

『壹』 python如何運用matplotlib庫繪制3D圖形

3D圖形在數據分析、數據建模、圖形和圖像處理等領域中都有著廣泛的應用,下面將給大家介紹一下如何在Python中使用 matplotlib進行3D圖形的繪制,包括3D散點、3D表面、3D輪廓、3D直線(曲線)以及3D文字等的繪制。

准備工作:

python中繪制3D圖形,依舊使用常用的繪圖模塊matplotlib,但需要安裝mpl_toolkits工具包,安裝方法如下:windows命令行進入到python安裝目錄下的Scripts文件夾下,執行: pip install --upgrade matplotlib即可;Linux環境下直接執行該命令。

安裝好這個模塊後,即可調用mpl_tookits下的mplot3d類進行3D圖形的繪制。

下面以實例進行說明。

1、3D表面形狀的繪制

這段代碼是繪制一個3D的橢球表面,結果如下:


2、3D直線(曲線)的繪制

這段代碼用於繪制一個螺旋狀3D曲線,結果如下:

3、繪制3D輪廓

繪制結果如下:

相關推薦:《Python視頻教程》

4、繪制3D直方圖

繪制結果如下:

5、繪制3D網狀線

繪制結果如下:

6、繪制3D三角面片圖

繪制結果如下:

7、繪制3D散點圖

繪制結果如下:

『貳』 python繪制散點圖|散點大小和顏色深淺由數值決定

Python,以其在數據處理、機器學習和可視化中的廣泛應用,成為了眾多開發者喜愛的工具。Matplotlib,作為Python中最受推崇的數據可視化庫之一,本文將深入指導如何通過Python和Matplotlib創建散點圖,從數據生成到圖形細節的調整一應俱全。

首先,請確保已安裝所需庫,如需安裝,可通過命令行進行操作。接下來,我們生成數據,通過numpy庫的random模塊生成代表語文、數學和英語成績的三組隨機整數,每個學生分數在相應范圍內,如語文分數50-100(不包括100)等。

然後,利用Matplotlib的scatter()函數繪制散點圖,以展示各科成績間的關聯。例如,我們將分別繪制語文分數與數學分數、語文與英語以及數學與英語的散點圖,通過`s`參數調整散點大小,`alpha`參數控制透明度,並為每組數據添加標簽。

為了使圖表更加易讀,我們還將在圖形中精細調整坐標軸。可以使用set_xlim()和set_ylim()函數設定軸范圍,set_xticks()和set_yticks()設置刻度間隔,set_xlabel()和set_ylabel()則用於添加清晰的軸標簽,如「語文分數」和「數學分數/英語分數」,並指定Times New Roman字體。

完整的代碼涵蓋了數據生成、散點圖繪制,以及對視覺效果的優化,包括軸范圍、刻度和標簽樣式等。通過執行這些步驟,您將獲得一個直觀且專業的散點圖。

以上就是關於如何利用Python和Matplotlib繪制散點圖的詳細教程,如果您想了解更多,請參考原文鏈接:[項目申報小狂人的博客-CSDN](https://www.csdn.net/article/details/xxxxx)。

『叄』 Python 數據可視化:分類特徵統計圖

上一課已經體驗到了 Seaborn 相對 Matplotlib 的優勢,本課將要介紹的是 Seaborn 對分類數據的統計,也是它的長項。

針對分類數據的統計圖,可以使用 sns.catplot 繪制,其完整參數如下:

本課使用演繹的方式來學習,首先理解這個函數的基本使用方法,重點是常用參數的含義。

其他的參數,根據名稱也能基本理解。

下面就依據 kind 參數的不同取值,分門別類地介紹各種不同類型的分類統計圖。

讀入數據集:

然後用這個數據集制圖,看看效果:

輸出結果:

毫無疑問,這里繪制的是散點圖。但是,該散點圖的橫坐標是分類特徵 time 中的三個值,並且用 hue='kind' 又將分類特徵插入到圖像中,即用不同顏色的的點代表又一個分類特徵 kind 的值,最終得到這些類別組合下每個記錄中的 pulse 特徵值,並以上述圖示表示出來。也可以理解為,x='time', hue='kind' 引入了圖中的兩個特徵維度。

語句 ① 中,就沒有特別聲明參數 kind 的值,此時是使用默認值 'strip'。

與 ① 等效的還有另外一個對應函數 sns.stripplot。

輸出結果:

② 與 ① 的效果一樣。

不過,在 sns.catplot 中的兩個參數 row、col,在類似 sns.stripplot 這樣的專有函數中是沒有的。因此,下面的圖,只有用 sns.catplot 才能簡潔直觀。

輸出結果:

不過,如果換一個叫角度來說,類似 sns.stripplot 這樣的專有函數,表達簡單,參數與 sns.catplot 相比,有所精簡,使用起來更方便。

仔細比較,sns.catplot 和 sns.stripplot 兩者還是稍有區別的,雖然在一般情況下兩者是通用的。

因此,不要追求某一個是萬能的,各有各的用途,存在即合理。

不過,下面的聲明請注意: 如果沒有非常的必要,比如繪制分區圖,在本課中後續都演示如何使用專有名稱的函數。

前面已經初步解釋了這個函數,為了格式完整,這里再重復一下,即 sns.catplot 中參數 kind='strip'。

如果非要將此函數翻譯為漢語,可以稱之為「條狀散點圖」。以分類特徵為一坐標軸,在另外一個坐標軸上,根據分類特徵,將該分類特徵數據所在記錄中的連續值沿坐標軸描點。

從語句 ② 的結果圖中可以看到,這些點雖然縱軸的數值有相同的,但是沒有將它們重疊。因此,我們看到的好像是「一束」散點,實際上,所有點的橫坐標都應該是相應特徵分類數據,也不要把分類特徵的值理解為一個范圍,分散開僅僅是為了圖示的視覺需要。

輸出結果:

④ 相對 ② 的圖示,在於此時同一縱軸值的都重合了——本來它們的橫軸值都是一樣的。實現此效果的參數是 jitter=0,它可以表示點的「振動」,如果默認或者 jitter=True,意味著允許描點在某個范圍振動——語句 ② 的效果;還可設置為某個 0 到 1 的浮點,表示許可振動的幅度。請對比下面的操作。

輸出結果:

語句 ② 中使用 hue='kind' 參數向圖中提供了另外一個分類特徵,但是,如果感覺圖有點亂,還可以這樣做:

輸出結果:

dodge=True 的作用就在於將 hue='kind' 所引入的特徵數據分開,相對 ② 的效果有很大差異。

並且,在 ⑤ 中還使用了 paletter='Set2' 設置了色彩方案。

sns.stripplot 函數中的其他有關參數,請讀者使用幫助文檔了解。

此函數即 sns.catplot 的參數 kind='swarm'。

輸出結果:

再繪制一張簡單的圖,一遍研究這種圖示的本質。

輸出結果:

此圖只使用了一個特徵的數據,簡化表象,才能探究 sns.swarmplot 的本質。它同樣是將該特徵中的數據,依據其他特徵的連續值在圖中描點,並且所有點在默認情況下不彼此重疊——這方面與 sns.stripplot 一樣。但是,與之不同的是,這些點不是隨機分布的,它們經過調整之後,均勻對稱分布在分類特徵數值所在直線的兩側,這樣能很好地表示數據的分布特點。但是,這種方式不適合「大數據」。

sns.swarmplot 的參數似乎也沒有什麼太特殊的。下面使用幾個,熟悉一番基本操作。

在分類維度上還可以再引入一個維度,用不同顏色的點表示另外一種類別,即使用 hue 參數來實現。

輸出結果:

這里用 hue = 'smoker' 參數又引入了一個分類特徵,在圖中用不同顏色來區分。

如果覺得會 smoker 特徵的值都混在一起有點亂,還可以使用下面方式把他們分開——老調重彈。

輸出結果:

生成此效果的參數就是 dodge=True,它的作用就是當 hue 參數設置了特徵之後,將 hue 的特徵數據進行分類。

sns.catplot 函數的參數 kind 可以有三個值,都是用於繪制分類的分布圖:

下面依次對這三個專有函數進行闡述。

『肆』 Python實現彩色散點圖繪制(利用色帶對散點圖進行顏色渲染)

接受自己的普通,然後全力以赴的出眾,告訴自己要努力,但不要著急....

當然, 這個結果並不是我真正想要的,Pass, 太丑了!

好吧,安排,我們先看下實現後的效果!

這個效果自然就比之前的好多了!

實現python散點圖繪制需要用到matplotlib庫, matplotlib庫是專門用於可視化繪圖的工具庫;學習一個新的庫當然看官方文檔了: https://www.osgeo.cn/matplotlib/contents.html

實現思路:

matplotlib.pyplot.scatter() 函數是專門繪制散點圖的函數: https://www.osgeo.cn/matplotlib/api/_as_gen/matplotlib.pyplot.scatter.html?highlight=scatter#matplotlib.pyplot.scatter

matplotlib.pyplot.scatter ( x, y , s=None , c=None , marker=None , cmap=None , norm=None , vmin=None , vmax=None , alpha=None , linewidths=None , verts=None , edgecolors=None , ***, data=None , ** kwargs ) **

plt.scatter(observation, estimate, c=Z1, cmap=colormap, marker=".", s=marker_size, norm=colors.LogNorm(vmin=Z1.min(), vmax=0.5 * Z1.max()))
其中:
1、c參數為計算的散點密度;
2、cmap為色帶(matplotlib裡面自帶了很多色帶可供選擇),參見:
https://www.osgeo.cn/matplotlib/gallery/color/colormap_reference.html
3、由於計算的散點密度數值大小分散,因此利用norm參數對散點密度Z1進行歸一化處理(歸一化方式很多,參見colors類),並給歸一化方式設置色帶刻度的最大最小值vmin和vmax(一般這兩個參數就是指定散點密度的最小值和最大值),這樣就建立起了密度與色帶的映射關系。
https://matplotlib.org/tutorials/colors/colormapnorms.html

(這里的結果與前面展示的相比改變了計算散點密度的半徑:radius = 3以及繪制散點圖的散點大小marksize)

作者能力水平有限,歡迎各位批評指正!

『伍』 Python之神奇的繪圖庫matplotlib

matplotlib是Python最著名的繪圖庫,它提供了一整套和matlab相似的命令API,十分適合互動式地進行制圖。本文將以例子的形式分析matplot中支持的,分析中常用的幾種圖。其中包括填充圖、散點圖(scatter plots)、. 條形圖(bar plots)、等高線圖(contour plots)、 點陣圖和3D圖,下面來一起看看詳細的介紹:

一、填充圖

參考代碼

簡要分析

這里主要是用到了fill_between函數。這個函數很好理解,就是傳入x軸的數組和需要填充的兩個y軸數組;然後傳入填充的范圍,用where=來確定填充的區域;最後可以加上填充顏色啦,透明度之類修飾的參數。

相關推薦:《Python教程》

效果圖

二、散點圖(scatter plots)

參考代碼

簡要分析

1.首先介紹一下numpy 的normal函數,很明顯,這是生成正態分布的函數。這個函數接受三個參數,分別表示正態分布的平均值,標准差,還有就是生成數組的長度。很好記。

2.然後是arctan2函數,這個函數接受兩個參數,分別表示y數組和x數組,然後返回對應的arctan(y/x)的值,結果是弧度制。

3.接下來用到了繪制散點圖的scatter方法,首先當然是傳入x和y數組,接著s參數表示scale,即散點的大小;c參數表示color,我給他傳的是根據角度劃分的一個數組,對應的就是每一個點的顏色(雖然不知道是怎麼對應的,不過好像是一個根據數組內其他元素進行的相對的轉換,這里不重要了,反正相同的顏色賦一樣的值就好了);最後是alpha參數,表示點的透明度。scatter函數的高級用法可以參見官方文檔scatter函數或者help文檔,最後設置下坐標范圍就好了。

效果圖

三、等高線圖(contour plots)

參考代碼

簡要分析

1.首先要明確等高線圖是一個三維立體圖,所以我們要建立一個二元函數f,值由兩個參數控制,(注意,這兩個參數都應該是矩陣)。

2.然後我們需要用numpy的meshgrid函數生成一個三維網格,即,x軸由第一個參數指定,y軸由第二個參數指定。並返回兩個增維後的矩陣,今後就用這兩個矩陣來生成圖像。

3.接著就用到coutourf函數了,所謂contourf,大概就是contour fill的意思吧,只填充,不描邊;這個函數主要是接受三個參數,分別是之前生成的x、y矩陣和函數值;接著是一個整數,大概就是表示等高線的密度了,有默認值;然後就是透明度和配色問題了,cmap的配色方案這里不多研究。

4.隨後就是contour函數了,很明顯,這個函數是用來描線的。用法可以類似的推出來,不解釋了,需要注意的是他返回一個對象,這個對象一般要保留下來個供後續的加工細化。

5.最後就是用clabel函數來在等高線圖上表示高度了,傳入之前的那個contour對象;然後是inline屬性,這個表示是否清除數字下面的那條線,為了美觀當然是清除了,而且默認的也是1;再就是指定線的寬度了。

效果圖

閱讀全文

與python繪制散點圖相關的資料

熱點內容
javaweb系統設計 瀏覽:374
假如給我三天光明pdf 瀏覽:761
小米文件夾顯示私密文件 瀏覽:760
易輯編譯sci科研 瀏覽:449
當代程序員的日常生活 瀏覽:649
湖北黃石dns伺服器雲主機 瀏覽:581
奇異博士是個什麼app 瀏覽:259
單片機數碼管閃爍 瀏覽:953
有什麼閱讀小說免費的app 瀏覽:661
華潤電力是個什麼app 瀏覽:372
java與jni線程 瀏覽:202
c語言哈夫曼編碼壓縮 瀏覽:27
單片機零基礎入門 瀏覽:437
千鋒python3基礎視頻 瀏覽:578
linuxintel程序 瀏覽:977
光遇登陸伺服器連接失敗什麼意思 瀏覽:767
jd檢測手機新老介面源碼 瀏覽:126
java調用interface 瀏覽:3
解決點面之間是否存在聯系的演算法 瀏覽:274
如何架構雲伺服器 瀏覽:399