如何用python繪制scatter,根據數值控制點的大小和深淺顏色


實現目標:想根據兩組數據進行繪制scatter,一組數值控制節點大小,另一組數值控制節點顏色的深淺。

數據准備:這里我要繪制64*64大小的散點圖

第一步:x,y為scatter中點的位置坐標(可自定義x,y,其中x,y可以是對應點所組成的向量形式)

那么x每一行都對應y從1-64,所以x矩陣為第幾行則該行就是幾,第一行64個1,第二行64個2.......以此類推到64行

 在matlab中初始化x向量
1
x=0 2 k=1 3 for j=1:64 4 for i=1:64 5 xspike(i)=k 6 end 7 x=[x,xspike] 8 k=k+1 9 end 10 x(1)=[] 11 % 最后需要把x,y第一列0刪除

如圖所示x向量形式:

y向量則是每一行都是從1到64

1 y=0
2 for j=1:64
3     for i=1:64
4      yspike(i)=i 
5     end
6     y=[y,yspike]
7 end
8 y(1)=[]

如圖所示,y向量表示形式

 

 以上確定好scatter中點的位置坐標啦

第二步:初始化控制點大小s的向量,當然可以是所有點統一定義一個數值大小,這里我想根據數值大小不同繪制大小不同的scatter點

我原始數據中數值過大,所以我用范圍規定了點的大小

 1 for i=1:4096
 2     if(sz8(i)<350)
 3         num8(i)=1
 4     elseif(350<=sz8(i)&&sz8(i)<750)
 5         num8(i)=4
 6     elseif(750<=sz8(i)&&sz8(i)<=1000)
 7         num8(i)=7
 8     elseif(sz8(i)>1000)
 9          num8(i)=10
10     end
11 end

第三步:初始化c向量,根據數值大小不同控制點顏色的深淺

以上四個向量都定義完,就可以繪制scatter圖形了。

用matlab繪制(可以進行help scatter查看更多繪圖方法):

scatter(x,y,s,p,'filled')

由於matlab中顏色選擇受限,所以選擇了用python繪制

sc=plt.scatter(x, y, s=sz, c=c, marker='o',cmap='Blues_r')#x,y表示點的坐標,s為點大小的向量,當然s=20這樣定義為統一大小,c為顏色深淺向量,cmap顏色設置,這里是數值越大顏色越淺
plt.colorbar(sc)
plt.show()

 

 將cmap中的“Blues_r”換成“Blues”可將顏色條調換,現在顏色條表示數值越小顏色越淺。

sc=plt.scatter(x, y, s=sz, c=c, marker='o',cmap='Blues')
plt.colorbar(sc)
plt.show()

 

Python 畫圖常用顏色 - 單色、漸變色、混色 - 夠用_Not Found黃小包-CSDN博客 : https://blog.csdn.net/weixin_40683253/article/details/87370127

Python 畫圖常用點的形狀,Matplotlib 設置參數marker的值 - o + - ★☆►◁ - 夠用_Not Found黃小包-CSDN博客:  https://blog.csdn.net/weixin_40683253/article/details/87375020

 python繪圖基礎—scatter用法_xiaobaicai4552的博客-CSDN博客:  https://blog.csdn.net/xiaobaicai4552/article/details/79065990

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM