Python資料視覺化-Matplotlib學習筆記(3)--畫散點圖
阿新 • • 發佈:2019-01-30
這兩天數學建模中需要畫個散點圖,索性就把程式碼發上來吧,帖子嘛~當然是多多益善嘍
資料是一千組x,y座標資料
列印下head
E:\Anaconda3\python.exe E:/Anaconda3/Lib/site-packages/tensorflow/examples/tutorials/mnist/劍魔.py
0 1 2 3 4
0 person_ID pickup_x pickup_y dropoff_x dropoff_y
1 p0001 23 30.2029 22.6848 28.5
2 p0002 21 25.5917 21.3687 24.5
3 p0003 21.3153 25.5 22.2491 24
4 p0004 20.2052 25.5 18.6191 21.5
0 1 2
0 taxi_ID now_x now_y
1 t0001 20.8034 25.0000
2 t0002 22.7184 24.5000
3 t0003 25.5000 27.3651
4 t0004 26.0000 32.0301
上程式碼:
import pandas as pd
import matplotlib.pyplot as plt
# 載入資料
data = pd.read_csv('C:/Users/Administrator/Desktop/A題/requests.csv', header=None)
taxi = pd.read_csv('C:/Users/Administrator/Desktop/A題/taxi.csv', header=None)
print(data.head())
print(taxi.head())
# 上車地點座標資料
x_up = data.loc[1:, 1 :1].values
x_up_list = list(x_up)
y_up = data.loc[1:, 2:2].values
y_up_list = list(y_up)
# 下車地點座標資料
x_down = data.loc[1:, 3:3].values
x_down_list = list(x_down)
y_down = data.loc[1:, 4:].values
y_down_list = list(y_down)
# 空車位置座標資料
x_taxi = taxi.loc[1:, 1:1].values
x_taxi_list = list(x_taxi)
y_taxi = taxi.loc[1:, 2:2].values
y_taxi_list = list(y_taxi)
fig = plt.figure(0)
plt.xlabel('x')
plt.ylabel('y')
plt.title('requests')
plt.scatter(x_up_list, y_up_list, c='red', alpha=1, marker='+', label='pickup') # c='red'定義為紅色,alpha是透明度,marker是畫的樣式
plt.scatter(x_down_list, y_down_list, c='blue', alpha=1, marker='+', label='dropout') # c='blue'定義為藍色
plt.scatter(x_taxi_list, y_taxi_list, c='green', alpha=1, marker='+', label='Taxi') # c='green'定義為綠色
plt.grid(True)
plt.legend(loc='best')
plt.show()
跟畫折線、條形圖啊其實就一回事,就是就是換了個畫圖的函式plt.scatter()
區域性放大後:
劃重點。。。圖中的散點我用的是+畫出來的,當然可以有很多很多中形狀可以畫
上面程式碼中資料太多,為了更好說明我取50個隨機座標作演示。
import matplotlib.pyplot as plt
import numpy as np
n = 50
# 隨機產生50個0~2之間的x,y座標
x = np.random.rand(n)*2
y = np.random.rand(n)*2
colors = np.random.rand(n) # 隨機產生50個0~1之間的顏色值
area = np.pi * (10 * np.random.rand(n))**2 # 點的半徑範圍:0~10
# 畫散點圖
plt.scatter(x, y, s=area, c=colors, alpha=0.5, marker=(9, 3, 30))
plt.show()
樣式彙總:
marker=(9, 3, 30)
marker='.'
marker=','
marker='o'
marker='v'
marker='^'
marker='<'
marker='>'
marker='1'
marker='2'
marker='3'