天天看點

python怎麼畫散點圖_python中畫散點圖

示例代碼:

import numpy as np

import matplotlib.pyplot as plt

from mpl_toolkits.mplot3d import Axes3D

data = np.random.randint(0, 255, size=[40, 40, 40])

x, y, z = data[0], data[1], data[2]

ax = plt.subplot(111, projection='3d') # 建立一個三維的繪圖工程# 将資料點分成三部分畫,在顔色上有區分度ax.scatter(x[:10], y[:10], z[:10], c='y') # 繪制資料點ax.scatter(x[10:20], y[10:20], z[10:20], c='r')

ax.scatter(x[30:40], y[30:40], z[30:40], c='g')

ax.set_zlabel('Z') # 坐标軸ax.set_ylabel('Y')

ax.set_xlabel('X')

plt.show()

今天想在散點圖的某些特定的點外面畫圓圈标記,從下面的文章找到一些靈感,隻要在原來的散點圖上面給指點添加相應的标志,設定其透明度就可以實作該想法。

順便複習下散點圖的用法。

大家平時為了直覺地顯示資料的分布情況,在畫散點圖的時候,簡單地把資料點用圓點标出來,像這樣:

python怎麼畫散點圖_python中畫散點圖

這樣:

python怎麼畫散點圖_python中畫散點圖
python怎麼畫散點圖_python中畫散點圖

還有這樣:

python怎麼畫散點圖_python中畫散點圖

然而今天我想給大家展示的散點圖,或許沒有那麼直覺地反映資料的分布情況,不夠實用,但是真的很美很藝術,每個的點的顔色和大小都不一樣,形狀也是多變的。比如五角星的散點圖:

python怎麼畫散點圖_python中畫散點圖

圓點的散點圖:

python怎麼畫散點圖_python中畫散點圖

Y形的散點圖:

python怎麼畫散點圖_python中畫散點圖

等等還有很多,那麼這些漂亮的形狀是怎麼畫出來的呢?其實代碼很簡單:

from numpy import *;

N = 50 # 點的個數

x = np.random.rand(N) * 2 # 随機産生50個0~2之間的x坐标

y = np.random.rand(N) * 2 # 随機産生50個0~2之間的y坐标

colors = np.random.rand(N) # 随機産生50個0~1之間的顔色值

area = np.pi * (15 * np.random.rand(N))**2 # 點的半徑範圍:0~15

# 畫散點圖

plt.scatter(x, y, s=area, c=colors, alpha=0.5, marker=(9, 3, 30))

plt.show()

這裡用到一個matplotlib.pyplot子庫中畫散點圖的函數

matplotlib.pyplot.scatter(x, y, s=20, c=None, marker='o',

cmap=None, norm=None, vmin=None, vmax=None, alpha=None,

linewidths=None, verts=None, edgecolors=None, hold=None,

data=None, **kwargs)

這個函數接收的參數很多,有預設值的平時也不需要我們指定,是可選的,這次我們用到的除了基本的x ,y參數,還有c,s,alpha和marker,c就是為點指定的顔色數組,s是點的面積大小,alpha是點的顔色的透明度,marker是指定點标記的形狀。在例子裡指定透明度為0.5,c和s是随機生成的,我們要改變的是marker的值,marker有很多值可供選擇,下表展示了在例子代碼的基礎上,改變marker的值後的效果:

markerresult

”.”

python怎麼畫散點圖_python中畫散點圖

”,”

python怎麼畫散點圖_python中畫散點圖

“o”

python怎麼畫散點圖_python中畫散點圖

“v”

python怎麼畫散點圖_python中畫散點圖

“^”

python怎麼畫散點圖_python中畫散點圖

“<”

python怎麼畫散點圖_python中畫散點圖

“>”

python怎麼畫散點圖_python中畫散點圖

“1”

python怎麼畫散點圖_python中畫散點圖

“2”

python怎麼畫散點圖_python中畫散點圖

“3”

python怎麼畫散點圖_python中畫散點圖

“4”

python怎麼畫散點圖_python中畫散點圖

“8”

python怎麼畫散點圖_python中畫散點圖

“s”

python怎麼畫散點圖_python中畫散點圖

“p”

python怎麼畫散點圖_python中畫散點圖

“*”

python怎麼畫散點圖_python中畫散點圖

“h”

python怎麼畫散點圖_python中畫散點圖

“H”

python怎麼畫散點圖_python中畫散點圖

“+”

python怎麼畫散點圖_python中畫散點圖

“x”

python怎麼畫散點圖_python中畫散點圖

“D”

python怎麼畫散點圖_python中畫散點圖

“d”

python怎麼畫散點圖_python中畫散點圖

“_”

python怎麼畫散點圖_python中畫散點圖

“None”

沒錯就是什麼都沒有。。。

python怎麼畫散點圖_python中畫散點圖

“$…$”

python怎麼畫散點圖_python中畫散點圖

(numsides, style, angle)

eg:(9,0, 30)

注:numsides是邊的個數,

angle是旋轉角度,

style隻有0,1,2,3四個值

python怎麼畫散點圖_python中畫散點圖

(numsides, style, angle)

eg:(9,1, 30)

python怎麼畫散點圖_python中畫散點圖

(numsides, style, angle)

eg:(9,2, 30)

python怎麼畫散點圖_python中畫散點圖

(numsides, style, angle)

eg:(9,3, 30)

注:此時numsides和angle的值自動被忽略

python怎麼畫散點圖_python中畫散點圖

……

這麼多種點的形狀符号夠我們用了吧~以後想用哪種查一下就好啦~