python使用scatter绘制散点图,同时画出表格背景(背景网格),最后在图中写或者标记出坐标

1年前 ⋅ 723 阅读

这里有一个需求,想要绘制散点图,我们知道python里面有个pyplot。但是绘制散点图的时候可能就不知道里面有哪些方法,想要绘制我们想要的效果,感觉就不是那么顺手。这里我介绍下可能用到的函数。首先没有关注我的,请先滑到页面最底部,先关注下本站的公众号。接下来,我们先看看画出来的最终结果图,如下:
scatter_val.png
那么我们是如何做到这样的,接下来,我们一一介绍下怎么实现的。步骤如下:
1.先导入我们需要使用到的pyplot

import matplotlib.pyplot as plt

2.创建数据

# 下面的x与y的是一一对的
# 也就是[1,9],[2,3],[3,4],[4,5],...这些点
x = [1, 2, 3, 4, 5, 6, 6, 8, 9]#随机写的x取值
y = [9, 3, 4, 5, 6, 7, 8, 2, 1]#随机写的y取值

3.使用scatter函数画出散点

plt.scatter(x,y)#画出散点

4.设置x轴的标签,y轴的标签,以散点图标题

# 解决中文乱码问题
plt.rcParams['font.sans-serif'] = ['STSong']
plt.rcParams['axes.unicode_minus'] = False
plt.xlabel("x的取值")  # 设置横轴(x)标签 
plt.ylabel("y的取值")  # 设置每个图中纵轴(y)的标签
plt.title("散点图")  # 设置标题

5.展示图片

plt.tight_layout()  # 自动调整参数,使之填充整个图像区域
plt.show()  # 展示图片

执行上面的代码后,结果如图:
scatter.png

6.如果我们想要展示背景网格怎么办?那么我们就使用背景网格代码,代码放入到plt.show()之前即可

plt.grid(linestyle='-.', color='orange')  # 画出每个图中的网格

执行结果如下:
scatter_grid.png

7.现在我们发现,光有背景网格,看起来方便,但是具体某个点的坐标我们还得看x轴和y轴来确定,那么我们该怎么办?当然是直接在图上标记出来,标记代码如下:

# 将点的值描述出来
for i in range(len(x)):
    plt.text(x[i],y[i],"({},{})".format(x[i],y[i]))
#代码的主要功功能就是直接找到对应的点(x,y),并在点的位置写出坐标值

执行结果如图:
scatter_val.png

8.最后,整体代码如下:

import matplotlib.pyplot as plt
# 下面的x与y的是一一对的
# 也就是[1,9],[2,3],[3,4],[4,5],...这些点
x = [1, 2, 3, 4, 5, 6, 6, 8, 9]#随机写的x取值
y = [9, 3, 4, 5, 6, 7, 8, 2, 1]#随机写的y取值
plt.scatter(x,y)#画出散点
# 解决中文乱码问题
plt.rcParams['font.sans-serif'] = ['STSong']
plt.rcParams['axes.unicode_minus'] = False
plt.xlabel("x的取值")  # 设置横轴(x)标签
plt.ylabel("y的取值")  # 设置每个图中纵轴(y)的标签
plt.title("散点图")  # 设置标题
plt.grid(linestyle='-.', color='orange')  # 画出每个图中的网格
# 将点的值描述出来
for i in range(len(x)):
    plt.text(x[i],y[i],"({},{})".format(x[i],y[i]))
plt.tight_layout()  # 自动调整参数,使之填充整个图像区域
plt.show()  # 展示图片