Python--Matplotlib数据可视化教程(散点图)

这两天数学建模中需要画个散点图,索性就把代码发上来吧,帖子嘛~当然是多多益善喽
这里写图片描述


数据是一千组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'

这里写图片描述


©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页