pythonのmatplotlib库之基础用法-折线图-散点图

用matplotlib来作画

matplotlib.pyplot绘制折线图

import matplotlib.pyplot as plt

values  = [1,2,3,4,5]
squares = [1,4,9,16,25]

#设定图象的自变量、因变量、线条粗细
plt.plot(values,squares,linewidth=2)

#给图标标题并设置字号
plt.title("A table of squares", fontsize=24)

#给坐标轴加上标签并设置字号
plt.xlabel("value",fontsize=12)
plt.ylabel("square of value",fontsize=12)#

#给横纵坐标设置字号
plt.tick_params(axis='x',labelsize=12)
plt.tick_params(axis='y',labelsize=12)

plt.show()

现在看看代码画出来的折线图
在这里插入图片描述

matplotlib.pyplot绘制散点图

上面的例子是把最终的图象一下子给画出来,下面我们一步一步重现整个画图的过程。

我们首先画一个单独的点出来

import matplotlib.pyplot as plt

#在图像上呈现一个单独的点
plt.scatter(2,5)
plt.show()

在这里插入图片描述
然后我们还是依照上面的步骤,设置标题,字号等等

import matplotlib.pyplot as plt

#在图像上呈现一个单独的点
plt.scatter(2,5)

#给图标标题并设置字号
plt.title("A table of squares", fontsize=24)

#给坐标轴加上标签并设置字号
plt.xlabel("value",fontsize=12)
plt.ylabel("square of value",fontsize=12)

#给横纵坐标设置字号
plt.tick_params(axis='x',labelsize=12)
plt.tick_params(axis='y',labelsize=12)

plt.show()

画出来的图是这个样子的
在这里插入图片描述
同样的,我们可以吧上面的操作对这个孤独的小点重复一遍

顺便玩点花样,这次把点的大小变大,让他看起来没有那么孤独

import matplotlib.pyplot as plt

#在图像上呈现一个单独的点
plt.scatter(2,5,s=2000)

#给图标标题并设置字号
plt.title("A table of squares", fontsize=24)

#给坐标轴加上标签并设置字号
plt.xlabel("value",fontsize=12)
plt.ylabel("square of value",fontsize=12)

#给横纵坐标设置字号
plt.tick_params(axis='x',labelsize=12)
plt.tick_params(axis='y',labelsize=12)

plt.show()

在这里插入图片描述
这个点看起来还是太大了,我们把它缩小一点

plt.scatter(2,5,s=101)

在这里插入图片描述
好了,现在我们来往图像上呈现一系列的点

import matplotlib.pyplot as plt

#在图像上呈现一系列的点
x = list(range(1,30))
y = [ x_i**2+2*x_i+4 for x_i in x]
plt.scatter(x,y)

#给图标标题并设置字号
plt.title("A table of squares", fontsize=24)

#给坐标轴加上标签并设置字号
plt.xlabel("value",fontsize=12)
plt.ylabel("square of value",fontsize=12)

#给横纵坐标设置字号
plt.tick_params(axis='x',labelsize=12)
plt.tick_params(axis='y',labelsize=12)

plt.show()

在这里插入图片描述
我们把自变量x,设置为一个从1开始,到30结束的列表

因变量y由一个关于x的式子给出

最终我们得到了一系列的点组成的集合

如果自变量最大值不是30,而是10000,甚至更大,我们会得到这样的图象

在这里插入图片描述
密集的点连成一条线

现在我们来试着限制坐标州的取值范围

import matplotlib.pyplot as plt

#在图像上呈现一系列的点
x = list(range(1,10000))
y = [ x_i**2+2*x_i+4 for x_i in x]
plt.scatter(x,y)

#给图标标题并设置字号
plt.title("A table of squares", fontsize=24)

#给坐标轴加上标签并设置字号
plt.xlabel("value",fontsize=12)
plt.ylabel("square of value",fontsize=12)

#给横纵坐标设置字号
plt.tick_params(axis='x',labelsize=12)
plt.tick_params(axis='y',labelsize=12)

#给坐标轴设置范围
plt.axis([0,5000,0,100000])

plt.show()

在这里插入图片描述
我们还可以设置点,以及点的轮廓的颜色

import matplotlib.pyplot as plt

#在图像上呈现一系列的点,设置点以及点的轮廓的颜色
x = list(range(1,10000))
y = [ x_i**2+2*x_i+4 for x_i in x]
plt.scatter(x,y,s=10,c='black',edgecolors='red')

#给图标标题并设置字号
plt.title("A table of squares", fontsize=24)

#给坐标轴加上标签并设置字号
plt.xlabel("value",fontsize=12)
plt.ylabel("square of value",fontsize=12)

#给横纵坐标设置字号
plt.tick_params(axis='x',labelsize=12)
plt.tick_params(axis='y',labelsize=12)

#给坐标轴设置范围
#plt.axis([0,5000,0,100000])

plt.show()

在这里插入图片描述
除了用red ,yellow等设置颜色,我们还可以使用RGB颜色模式自定义颜色分量

plt.scatter(x,y,s=10,c=(0,0,1),edgecolors='none')

控制红黄蓝三种颜色的比例,我们可以画出五颜六色的图象
在这里插入图片描述
在实际画图的时候,我们往往需要根据每个点数值的大小,对不同的点绘制上不同的颜色,在matplotlib中我们可以使用颜色映射来实现这种功能

plt.scatter(x,y,s=10,c=y,edgecolors='none',cmap=plt.cm.Reds)

参数cmap告诉pyplot使用那个颜色映射,如果我们使用红色

当y的值较小时,点显示为浅红色;y的值较大时,点显示为深红色
在这里插入图片描述
保存图表

plt.savefig('squares_plot.png',bbox_inches='tight')

其中,第一个实参指定要以什么样的文件名保存图表,这个图标将被保存到同一个项目文件夹里面

第二个实参指定图标的多余空白区域裁剪掉

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值