1. 程式人生 > >Python資料視覺化-Matplotlib學習筆記(3)--畫散點圖

Python資料視覺化-Matplotlib學習筆記(3)--畫散點圖

這兩天數學建模中需要畫個散點圖,索性就把程式碼發上來吧,帖子嘛~當然是多多益善嘍
這裡寫圖片描述

資料是一千組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'

這裡寫圖片描述