Python 散点图

python

matplotlib 绘制散点图的函数有 mptplotlib.pyplot.plot()、matplotlib.pyplot.scatter(),多数情况下使用 scatter() 函数。

scatter() 函数主要参数:

plt.scatter(x,y,  # array_like, 数据点在坐标系中的位置

s=None, # 标量或array_like, 标记点的大小, 可选参数

c=None, # 标记点的颜色,默认值为 'b'

marker=None, # 标记样式,默认为 'o'

cmap=None, # 颜色映射

norm=None, #

vmin=None,

vmax=None,

alpha=None, # 透明度, [0, 1] 上的浮点数

linewidths=None, # 线宽

verts=None,

edgecolors=None, # 标记的边缘颜色, 默认为 'face',表示边缘颜色与面颜色相同

hold=None,

data=None,

**kwargs)

一、用 plot() 绘制散点

示例 1

import numpy as np

import matplotlib.pyplot as plt

# 生成 1000 个服从标准正态分布的样本

y = np.random.randn(1000)

# 绘制散点图

plt.plot(x, linestyle='', marker='.'); # 设置为不画线,标记标记点为圆点

plt.plot(x, linestyle='', marker='.')  可以简写为 plt.plot(x, '.')

 plot() 函数默认绘制折线图,如果不是简写方式,只是省略 linestyle (略写为 ls) 参数,

而是写为 plt.plot(x, marker='.'); 则图形如下:

 2、plot() 在只提供 y 值,不提供 x 值时,默认将 序列或数组 y 索引值当作 x

 所以,示例 1 的完整代码应该是:

import numpy as np

import matplotlib.pyplot as plt

# 生成 1000 个服从标准正态分布的样本

y = np.random.randn(1000)

x = [i for i, _ in enumerate(y)]

# 绘制散点图

plt.plot(x, y, linestyle='', marker='.');

对上述代码略作修正,使图表美观一点

import numpy as np

import matplotlib.pyplot as plt

# 生成 1000 个服从标准正态分布的样本

y = np.random.randn(1000)

x = [i for i, _ in enumerate(y)]

# 图表元素中正常显示中文字符

plt.rcParams['font.sans-serif'] = 'SimHei'

# 坐标轴刻度标签正常显示负号

plt.rcParams['axes.unicode_minus'] = False

# 绘制散点图

plt.plot(x, y, linestyle='', marker='.')

plt.xticks(size=12, color='grey') # x 轴刻度标签

plt.yticks(size=12, color='grey') # y 轴刻度标签

plt.title('散点图', size=14, color='y'); # 添加图表标题

二、用 scatter() 绘制散点图

示例2

import numpy as np 
import matplotlib.pyplot as plt

# 在区间 [a, b] 上均匀地取指定数量的值
x = np.linspace(0.05, 10, 1000)

np.random.seed(22)

# 生成 1000 个服从标准正态分布的样本 
y = np.random.randn(1000)

plt.scatter(x, y);

  注:标记点默认为圆点,颜色默认为 blue, 边缘颜色默认与标记点的颜色一致。

对示例2 的图形进行美化

import numpy as np

import matplotlib.pyplot as plt

# 在区间 [a, b] 上均匀地取指定数量的值

x = np.linspace(0.05, 10, 1000)

np.random.seed(22)

y = np.random.randn(1000)

# 图表元素中正常显示中文字符

plt.rcParams['font.sans-serif'] = 'SimHei'

# 坐标轴刻度标签正常显示负号

plt.rcParams['axes.unicode_minus'] = False

plt.scatter(x, y,

s=87, # 标记点大小

marker='*', # 标记点的样式 星号

c='g', # green 绿色

linewidths=0.41,

edgecolor='y', # 边缘颜色

label='scatter figure')

plt.xticks(size=12, color='grey') # x 轴刻度标签

plt.yticks(size=12, color='grey') # y 轴刻度标签

plt.title('散点图', size=14, color='y'); # 添加图表标题

plt.legend() # 添加图例

# 设置坐标轴刻度范围

plt.xlim(-0.5, 10.5)

plt.ylim(-3.5, 3.5);

以上是 Python 散点图 的全部内容, 来源链接: utcz.com/z/388763.html

回到顶部