Matplotlib常用技巧之简易散点图

Matplotlib常用技巧之简易散点图scatter plot

首先导入函数:

%matplotlib inline
import matplotlib.pyplot as plt
plt.style.use('seaborn-whitegrid')
import numpy as np

1.利用上次所学的plt.plot 画散点图

rng = np.random.RandomState(0)
for marker in ['o','.','x',',','+','v','^','<','>','s','d']:
    plt.plot(rng.rand(5),rng.rand(5),marker,
            label=f"maker={marker}")
    plt.legend(numpoints=1)  #  图例 点的数量
    plt.xlim(0,1.9)
# 可以用 plt.plot(x,y,'-ok')  -是直线风格  o是圆圈标记  k是颜色

Matplotlib常用技巧之简易散点图_第1张图片

"""
plt.plot()有许多设置线条和散点属性参数的参数:
color,linewidth=数值,
markerfacecolor='颜色',
markeredgecolor='颜色',
markeredgewidth=数值
"""

2.用 plt.scatter画散点图

plt.scatter(x, y, marker="o")更加灵活,可以单独控制每个散点和数据匹配、拥有不同属性(大小、表面颜色、边框颜色)

rng = np.random.RandomState(0)
x = rng.randn(100)
y = rng.randn(100)
colors = rng.rand(100)
sizes = 1000 * rng.rand(100)
plt.scatter(x, y, c=colors, s=sizes, alpha=0.3,cmap='viridis')
plt.colorbar()    # 显示颜色条

Matplotlib常用技巧之简易散点图_第2张图片

"""
 	下面记录plt.scatter()的参数:
	matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, 
	cmap=None,alpha=None, linewidths=None,edgecolors=None, norm=None)
"""
# 1)  x,y 是横纵坐标 #
# 2)  s   是点的大小 #
# 3)  c   是点的颜色可以是RGB数字,也可以是一个RGB或RGBA二维行数组 #
# 4)  marker       是点的形状 一般默认"o" #
# 5)  cmap (当c是浮点数组的时候才使用) 调取c的数值做一个数值和颜色的映射
#                                    参数可选取"viridis" #	
# 6)  linewidths   是点边缘线宽 #
# 7)  edgecolors   是点边缘颜色 #
# 8)  norm  (当c是浮点数组的时候才使用)       是调整映射范围的 #
#  需要调用matplotlib.color.Nomalize() 如下:
import matplotlib.pyplot as plt
import numpy as np
import matplotlib as mlt
rng = np.random.RandomState(0) 
x = rng.randn(100) 	    #横坐标
y = rng.randn(100)      #纵坐标
color = rng.rand(100)   #
sizes = 1000 * rng.rand(100)   
changecolor = mlt.colors.Normalize(vmin=0.2,vmax=0.8) # vmin 和 vmax 参数用来调整颜色条范围,
plt.scatter(x, y, c=color, s=sizes, alpha=0.3, 
cmap="viridis",norm=changecolor)   
plt.colorbar(); # 显示颜色条

Matplotlib常用技巧之简易散点图_第3张图片

回顾上篇plot,与之相比呢,scatter 因为数据中每个散点的颜色、尺寸都是单独渲染的,plot散点基本都是彼此复制。因此在对大型数据集处理时,性能方面存在很大差异,不推荐使用scatter方法。

写于最后:除了x,y能够表现两个维度的数据,颜色随着第三维度数据的变化也是在探索和演示数据时非常有用的!

如有纰漏,还请多多包涵,感谢大家批评指正!

你可能感兴趣的:(Python,数据科学手册,Matplotlib,python,数据可视化,可视化)