Python学习笔记第六十六天(Matplotlib 散点图)

Matplotlib 散点图

我们可以使用 pyplot 中的 scatter() 方法来绘制散点图。

scatter() 方法语法格式如下:

matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None,vmax=None, alpha=None, 
						 linewidths=None, *, edgecolors=None, plotnonfinite=False, data=None, **kwargs)

参数说明:

  • x,y:长度相同的数组,也就是我们即将绘制散点图的数据点,输入数据。

  • s:点的大小,默认 20,也可以是个数组,数组每个参数为对应点的大小。

  • c:点的颜色,默认蓝色 ‘b’,也可以是个 RGB 或 RGBA 二维行数组。

  • marker:点的样式,默认小圆圈 ‘o’。

  • cmap:Colormap,默认 None,标量或者是一个 colormap 的名字,只有 c 是一个浮点数数组的时才使用。如果没有申明就是 image.cmap。

  • norm:Normalize,默认 None,数据亮度在 0-1 之间,只有 c 是一个浮点数的数组的时才使用。

  • vmin,vmax::亮度设置,在 norm 参数存在时会忽略。

  • alpha::透明度设置,0-1 之间,默认 None,即不透明。

  • linewidths::标记点的长度。

  • edgecolors::颜色或颜色序列,默认为 ‘face’,可选值有 ‘face’, ‘none’, None。

  • plotnonfinite::布尔值,设置是否使用非限定的 c ( inf, -inf 或 nan) 绘制点。

  • **kwargs::其他参数。

绘制散点图

以下实例 scatter() 函数接收长度相同的数组参数,一个用于 x 轴的值,另一个用于 y 轴上的值:

# 实例 1
import matplotlib.pyplot as plt
import numpy as np

x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = np.array([1, 4, 9, 16, 7, 11, 23, 18])

plt.scatter(x, y)
plt.show()

自定义点的大小

# 实例 2
import matplotlib.pyplot as plt
import numpy as np

x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = np.array([1, 4, 9, 16, 7, 11, 23, 18])
sizes = np.array([20,50,100,200,500,1000,60,90])
plt.scatter(x, y, s=sizes)
plt.show()

自定义点的颜色

# 实例 3
import matplotlib.pyplot as plt
import numpy as np

x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = np.array([1, 4, 9, 16, 7, 11, 23, 18])
colors = np.array(["red","green","black","orange","purple","beige","cyan","magenta"])

plt.scatter(x, y, c=colors)
plt.show()

设置两组散点图

# 实例 4
import matplotlib.pyplot as plt
import numpy as np

x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
plt.scatter(x, y, color = 'hotpink')

x = np.array([2,2,8,1,15,8,12,9,7,3,11,4,7,14,12])
y = np.array([100,105,84,105,90,99,90,95,94,100,79,112,91,80,85])
plt.scatter(x, y, color = '#88c999')

plt.show()

使用随机数来设置散点图

# 实例 6
import numpy as np
import matplotlib.pyplot as plt

# 随机数生成器的种子
np.random.seed(999999)


N = 50
x = np.random.rand(N)
y = np.random.rand(N)
colors = np.random.rand(N)
area = (30 * np.random.rand(N))**2  # 0到15的半径 (0 to 15 point radii)

plt.scatter(x, y, s=area, c=colors, alpha=0.5) # 设置颜色及透明度

plt.title("随机数来设置散点图") # 设置标题

plt.show()

颜色条 Colormap

Matplotlib 模块提供了很多可用的颜色条。

颜色条就像一个颜色列表,其中每种颜色都有一个范围从 0 到 100 的值。

设置颜色条需要使用 cmap 参数,默认值为 ‘viridis’,之后颜色值设置为 0 到 100 的数组。

# 实例 7
import matplotlib.pyplot as plt
import numpy as np

x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
colors = np.array([0, 10, 20, 30, 40, 45, 50, 55, 60, 70, 80, 90, 100])

plt.scatter(x, y, c=colors, cmap='viridis')

plt.show()

如果要显示颜色条,需要使用 plt.colorbar() 方法:

# 实例 8
import matplotlib.pyplot as plt
import numpy as np

x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
colors = np.array([0, 10, 20, 30, 40, 45, 50, 55, 60, 70, 80, 90, 100])

plt.scatter(x, y, c=colors, cmap='viridis')

plt.colorbar()

plt.show()

换个颜色条参数, cmap 设置为 afmhot_r:

# 实例 9
import matplotlib.pyplot as plt
import numpy as np

x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
colors = np.array([0, 10, 20, 30, 40, 45, 50, 55, 60, 70, 80, 90, 100])

plt.scatter(x, y, c=colors, cmap='afmhot_r')
plt.colorbar()
plt.show()

颜色条参数值可以是以下值:

颜色名称保留关键字
AccentAccent_r
BluesBlues_r
BrBGBrBG_r
BuGnBuGn_r
BuPuBuPu_r
CMRmapCMRmap_r
Dark2Dark2_r
GnBuGnBu_r
GreensGreens_r
GreysGreys_r
OrRdOrRd_r
OrangesOranges_r
PRGnPRGn_r
PairedPaired_r
Pastel1Pastel1_r
Pastel2Pastel2_r
PiYGPiYG_r
PuBuPuBu_r
PuBuGnPuBuGn_r
PuOrPuOr_r
PuRdPuRd_r
PurplesPurples_r
RdBuRdBu_r
RdGyRdGy_r
RdPuRdPu_r
RdYlBuRdYlBu_r
RdYlGnRdYlGn_r
RedsReds_r
Set1Set1_r
Set2Set2_r
Set3Set3_r
SpectralSpectral_r
WistiaWistia_r
YlGnYlGn_r
YlGnBuYlGnBu_r
YlOrBrYlOrBr_r
YlOrRdYlOrRd_r
afmhotafmhot_r
autumnautumn_r
binarybinary_r
bonebone_r
brgbrg_r
bwrbwr_r
cividiscividis_r
coolcool_r
coolwarmcoolwarm_r
coppercopper_r
cubehelixcubehelix_r
flagflag_r
gist_earthgist_earth_r
gist_graygist_gray_r
gist_heatgist_heat_r
gist_ncargist_ncar_r
gist_rainbowgist_rainbow_r
gist_sterngist_stern_r
gist_yarggist_yarg_r
gnuplotgnuplot_r
gnuplot2gnuplot2_r
graygray_r
hothot_r
hsvhsv_r
infernoinferno_r
jetjet_r
magmamagma_r
nipy_spectralnipy_spectral_r
oceanocean_r
pinkpink_r
plasmaplasma_r
prismprism_r
rainbowrainbow_r
seismicseismic_r
springspring_r
summersummer_r
tab10tab10_r
tab20tab20_r
tab20btab20b_r
tab20ctab20c_r
terrainterrain_r
twilighttwilight_r
twilight_shiftedtwilight_shifted_r
viridisviridis_r
winterwinter_r

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

后记

今天学习的是Python Matplotlib 散点图学会了吗。 今天学习内容总结一下:

  1. 绘制散点图
  2. 自定义点的大小
  3. 自定义点的颜色
  4. 设置两组散点图
  5. 使用随机数来设置散点图
  6. 颜色条 Colormap
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北岛末巷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值