生成数据
数据可视化
数据可视化指的是通过可视化表示来探索数据,它与数据挖掘机密相关。
安装matplotlib
请访问/pypi/matplotlib/,
并查找与你使用的python版本匹配的wheel文件,例如,我是用的是64位的python3.7,则需要下载的是matplotlib-3.1.1-cp37-cp37m-win_amd64.whl。
将你下载好的.whl文件复制到你的项目文件夹,打开一个命令窗口(windows+r,然后输入cmd),再使用pip 来安装matplotlib:
cd 目标文件夹
目标文件夹> python -m pip install --user matplotlib-3.1.1-cp37-cp37m-win_amd64.whl 就欧克了
下一步,就是测试matplotlib了,在编辑器中import matplotlib,不报错就表示你已近成功了。
绘制简单的折线图
import matplotlib.pyplot as plt
squares=[1,4,9,16,25]
plt.plot(squares)
plt.show()1
2
3
4
大家是不是发现了折线图的终点指出4.0的平方是25!为什么会出现这样的问题呢?
原来当你向plot()提供一系列数字时,他假设第一个数据点对应的x坐标为0,但我们的第一个点对应的x值为1.为改变这种行为,我们可以通过以下两种方式进行修正。
(1)
import matplotlib.pyplot as plt
# input_values=[0,1,2,3,4,5]
squares=[1,4,9,16,25]
plt.plot(squares)
plt.show()1
2
3
4
5
第一种方法即,增加一个0处的点来达到目的
(2)
import matplotlib.pyplot as plt
input_values=[0,1,2,3,4,5]
squares=[0,1,4,9,16,25]
plt.plot(input_values,squares)
plt.show()1
2
3
4
5
第两种方法是指我们可以给plot()同时提供输入值和输出值。
上面两种代码的运行结果如图所示:
z
这样就没有问题了吧。
同时matplotlib也提供了很多可以修改样式的方法,通过修改样式我们可以更加直观的观察分析数据。
方法
效果
linewidth
设置线条粗细
fontsize
设置字体的大小
title()
设置标题
xlabel()
设置x轴
ylabel()
设置y轴
tick_params(axis=" ")
设置刻度的样式,其中axis有三个参数可选,分别是"x"(x轴)“y”(y轴)“both”(x轴和y轴)
下面来举个例子:
import matplotlib.pyplot as plt
input_values=[0,1,2,3,4,5]
squares=[0,1,4,9,16,25]
plt.plot(input_values,squares,linewidth=5)
#设置图表标题,并给坐标轴加上标签
plt.title("Square Numbers",fontsize=24)
plt.xlabel("Value",fontsize=14)
plt.ylabel("Square of Value",fontsize=14)
#设置刻度标记的大小
plt.tick_params(axis='both',labelsize=14)
plt.show()1
2
3
4
5
6
7
8
9
10
11
此时我们首先引入了matplotlib.pyplot,为了方便写入,我们用plt来代表它,plt.plot(input_values,squares,linewidth=5)这里表示的是线宽为5的线条,plt.title(“Square Numbers”,fontsize=24)是设置标题,字号为24,同理plt.xlabel是对x轴写标题并且规定标题的字号,plt.tick_params(axis=‘both’,labelsize=14)的作用是刻度的宽度为14,并且将此样式应用于x轴和y轴,==plt.show()==是打开matplotlib查看器,并显示绘制的图形。这样说大家明白了吧。
使用scatter()绘制散点图并设置样式
直接上个代码:
import matplotlib.pyplot as plt
plt.scatter(2,4,s=200)#s是设置点的尺寸
#设置图标标题并给坐标轴加上标签
plt.title("Square Numbers",fontsize=24)
plt.xlabel("Value",fontsize=14)
plt.ylabel("Square of Value",fontsize=14)
#设置刻度标记的大小
plt.tick_params(axis="both",which='major',labelsize=14)
plt.show()1
2
3
4
5
6
7
8
9
10
我想大家凭借聪明的头脑已经可以读懂这个程序了,这里跟上面稍有不同的就是plt.scatter(2,4,s=200)#s是设置点的尺寸,2是点的横坐标,4是纵坐标,s是点的尺寸。其余的就不多说了,下面是结果图
当然咱们作图的时候不可能只用一个点,下面咱们来画一系列的点,
import matplotlib.pyplot as plt
x_values=[1,2,3,4,5]
y_values=[1,4,9,16,25]
plt.scatter(x_values,y_values,s=200)#s是设置点的尺寸
#设置图标标题并给坐标轴加上标签
plt.title("Square Numbers",fontsize=24)
plt.xlabel("Value",fontsize=14)
plt.ylabel("Square of Value",fontsize=14)
#设置刻度标记的大小
plt.tick_params(axis="both",which='major',labelsize=14)
plt.show()1
2
3
4
5
6
7
8
9
10
11
列表x_values包含要计算其平方的数字,y_values包含x对应数字的平方值,将这些列表传递给scatter()时,matplotlib依次从每个列表读取一个值来绘制一个点。要绘制的点分别为(1,1)(2,4)(3,9)(4,16)(5,25),最终结果如下图:
这样就大功告成了。
上面就是matplotlib生成折线图和散点图的做法,当然matplotlib还有很多用途,这些用途咱们以后会讲到,十分感谢大家阅读。