基于matplotlib的折线图和散点图的绘制

本文是在python3的环境下用matplotlib对绘制折线图和散点图的一些小练习和知识点总结,若有不足,还请各位大佬指点

1. 折线图的绘制(plot())

1.1 简单折线图
这里先来绘制一个简单的折线图,代码如下

import matplotlib.pyplot as plt

data = [1,4,9,16,25]

plt.plot(data)
plt.show()

这里我们给的数据是1到5的平方,然后将data传参给函数plot(),这时候plot就会根据传入的data去绘制图形。最后调用show()函数来查看并显示绘制的图形,如下

图- 1-1

1.2 对折线图进行设置
图虽然画出来了,但发现画的并不标准,(5,25)这个点并没有显示出来,而且横轴,纵轴和线条比较小,观赏性比较差。那下面就来改变一下它的观赏性。

import matplotlib.pyplot as plt

data = [1,4,9,16,25]

plt.plot(data, linewidth=5)#linewidth修改线条的粗细

#设置图的标题,并给各坐标轴加上标签
plt.title("Square number", fontsize=15)
plt.xlabel("x", fontsize=15)
plt.ylabel("y", fontsize=15)

#设置各轴的刻度标记大小
plt.tick_params(axis='both', labelsize=15)

plt.show()

这里使用了linewidth参数来改变线的粗细,使用plt.title(),plt.xlabel和plt.ylabel来增加图的标题,X轴和Y轴的标签,以及参数fontsize来改变标签的大小;最后使用plt.tick_params()来设置坐标轴的刻度大小,结果如下

在这里插入图片描述
发现这次显然比上次更具有观赏性,但(5,25)的问题还是没有解决,接下来就是解决它了。
1.3 校正
为什么绘出来的图形是4的平方对应25呢?其实这跟我们提供的数据有关系,当我们只向plt.plot()函数提供一组data时,它会默认x轴的刻度从0开始,这就得出了上面的图形。接下来我们改变一下向plt.plot()传的参数

import matplotlib.pyplot as plt

x_data = [1,2,3,4,5]
y_data = [1,4,9,16,25]

plt.plot(x_data, y_data, linewidth=5)#linewidth修改线条的粗细

#设置图的标题,并给各坐标轴加上标签
plt.title("Square number", fontsize=15)
plt.xlabel("x", fontsize=15)
plt.ylabel("y", fontsize=15)

#设置各轴的刻度标记大小
plt.tick_params(axis='both', labelsize=15)

plt.show()

现在向plt.plot()传了x_data和y_data,现在来看一下效果,可以看到图已经校正了。
在这里插入图片描述

2. 散点图的绘制(scatter())

2.1.绘制单个点
先来简单点的,绘制一个点,代码如下

import matplotlib.pyplot as plt

plt.scatter(3, 5)
plt.show()

看一下效果
在这里插入图片描述
虽然点是绘制出来了,但不够那么了然,接下来我们对其进行:添加标题,添加轴标签和调整轴刻度
如下

import matplotlib.pyplot as plt

plt.scatter(3, 5)

#设置图的标题,并给各坐标轴加上标签
plt.title("Point", fontsize=15)
plt.xlabel("x", fontsize=15)
plt.ylabel("y", fontsize=15)

#设置各轴的刻度标记大小
plt.tick_params(axis='both', labelsize=15)

plt.show()

在这里插入图片描述
可以看到,进行设置了后绘出的图更加具有可读性

扫描二维码关注公众号,回复: 11946149 查看本文章

2.2 绘制一系列的点
要想绘制一系列的点,就得传更多的点,这里还是以上面折线图的数据传参给plt.scatter(),如下

import matplotlib.pyplot as plt

x_data = [1,2,3,4,5]
y_data = [1,4,9,16,25]

plt.scatter(x_data, y_data,s=50)#相当于size,调节点的大小

#设置图的标题,并给各坐标轴加上标签
plt.title("Point", fontsize=15)
plt.xlabel("x", fontsize=15)
plt.ylabel("y", fontsize=15)

#设置各轴的刻度标记大小
plt.tick_params(axis='both', labelsize=15)

plt.show()

效果如下
在这里插入图片描述
要想绘制更多的点,这里可以改变传入的点数,下面画的是1000个点

import matplotlib.pyplot as plt

x_data = list(range(1,1001))
y_data = [x**2 for x in x_data]

plt.scatter(x_data, y_data,s=50)#相当于size,调节点的大小

#设置图的标题,并给各坐标轴加上标签
plt.title("Point", fontsize=15)
plt.xlabel("x", fontsize=15)
plt.ylabel("y", fontsize=15)

#设置各轴的刻度标记大小
plt.tick_params(axis='both', labelsize=15)

plt.show()

看效果,这里看起来是一条曲线,但实际上不是,而是因为每个点都有轮廓以及点数较多,所以看起来像一条曲线。我们设置scatter的edgecolor参数的值为none,以此来删掉每个点的轮廓,如下
在这里插入图片描述

plt.scatter(x_data, y_data, edgecolor='none', s=50)#相当于size,调节点的大小

在这里插入图片描述
2.3 着色
着色的话也主要是通过scatter里面的c参数来设置的。这里着色的话用了两方法,一个是直接将颜色的英文名赋给c参数,另外一种就是根据RGB来调。以下用两种方法来实现红色着色

import matplotlib.pyplot as plt

x_data = list(range(1,1001))
y_data = [x**2 for x in x_data]

plt.scatter(x_data, y_data, c='Red',edgecolor='none', s=50)#相当于size,调节点的大小

#设置图的标题,并给各坐标轴加上标签
plt.title("Red", fontsize=15)
plt.xlabel("x", fontsize=15)
plt.ylabel("y", fontsize=15)

#设置各轴的刻度标记大小
plt.tick_params(axis='both', labelsize=15)

plt.show()

在这里插入图片描述
RGB着色,只需要在上述代码中改变c参数即可。RGB分别代表红色,绿色和蓝色。值越接近1,代表指定的颜色越深,反之,如下

plt.scatter(x_data, y_data, c=(1,0,0), edgecolor='none', s=50)#相当于size,调节点的大小

在这里插入图片描述
可以看到两者实现的效果是一样的
2.4 颜色映射
这个比较有趣了,它可以从起始渐变到结束色,突出数据的规律。这里要改变的是scatter里的c参数和cmap参数,还是在上面的代码对plt.csatter()函数进行改动,如下

plt.scatter(x_data, y_data, c=y_data, cmap=plt.cm.Reds, edgecolor='none', s=50)#相当于size,调节点的大小

效果如下
在这里插入图片描述

本文是我第一次写,只是对自己学习的总结,希望对我这样的小白也有点用吧,哈哈!若有不足,还请各位大佬指点

猜你喜欢

转载自blog.csdn.net/qq_44690947/article/details/106732390