前文曾用tableau进行数据可视化的业务实操案例解析,本文来讲解使用Python进行基础的可视化操作,主要是讲解一些Python可视化的基础代码操作。
Python可视化的基础为matplotlib包,当然,Python还有其他的可视化模块可以选择,但是都是基于matplotlib包的升级或者扩展,因此本文主要简单介绍matplotlib。
先简单画一个图,代码如下:
#导入matplotlib的pyplot模块
import matplotlib.pyplot as plt
'''
第1步:定义x和y坐标轴上的点
'''
#x坐标轴上点的数值
x=[1, 2, 3, 4]
#y坐标轴上点的数值
y=[1, 4, 9, 16]
'''
第2步:使用plot绘制线条
第1个参数是x的坐标值,第2个参数是y的坐标值
'''
plt.plot(x,y)
'''
第3步:显示图形
'''
plt.show()
结果如图所示:
可以更改一下颜色线条
'''
color:线条颜色,值r表示红色(red)
marker:点的形状,值o表示点为圆圈标记(circle marker)
linestyle:线条的形状,值dashed表示用虚线连接各点
'''
plt.plot(x, y, color='r',marker='o',linestyle='dashed')
#plt.plot(x, y, 'ro')
'''
axis:坐标轴范围
语法为axis[xmin, xmax, ymin, ymax],
也就是axis[x轴最小值, x轴最大值, y轴最小值, y轴最大值]
'''
plt.axis([0, 6, 0, 20])
plt.show()
图像变换为
我们如何添加在图表中添加文本呢,下面的代码可以实现
#x轴文本
plt.xlabel('x坐标轴')
#y轴文本
plt.ylabel('y坐标轴')
#标题
plt.title('标题')
结果如图所示:
以上的例子可以简单了解matplotlib的画图方式,官网的图片如下,详细指出了图表各部分的构成元素与代码名称
1,Figure对象
在matplotlib中,整个图像为一个Figure对象。在Figure对象中可以包含一个或者多个Axes对象。每个Axes(ax)对象都是一个拥有自己坐标系统的绘图区域。
#创建画板,figsize=(n, m)可以指定画板的轴长度
plt.figure(figsize=(6, 3))
plt.plot(6, 3)
plt.plot(3, 3 * 2)
plt.show()
结果为
2,subplot()子图
如果需要将多张子图展示在一起,可以使用 subplot() 实现。即在调用 plot()函数之前需要先调用 subplot() 函数。该函数的第一个参数代表子图的总行数,第二个参数代表子图的总列数,第三个参数代表活跃区域。
#创建画板1
fig = plt.figure(1)
#第2步:创建画纸(子图)
'''
subplot()方法里面传入的三个数字
前两个数字代表要生成几行几列的子图矩阵,第三个数字代表选中的子图位置
subplot(211)生成一个2行1列的子图矩阵,当前是第一个子图
'''
#创建画纸,并选择画纸1
#等价于ax1=fig.add_subplot(211)
ax1=plt.subplot(2,1,1)
#在画纸上绘图
plt.plot([1, 2, 3])
#选择画纸2
ax2=plt.subplot(2,1,2)
#在画纸2上绘图
plt.plot([4, 5, 6])
plt.show()
结果如图所示
官网图中的坐标轴(axis)、坐标轴名称(axis label)、坐标轴刻度(tick)、坐标轴刻度标签(tick label)、网格线(grid)、图例(legend)、标题(title)......,这些比较简单,只需要按照参数设置即可,上面的代码也有体现,就不举例说明了,最后用上篇文章中的商城数据来做一个点图,以各地区的总销售额为例,代码如下
#注意groupby函数的数据结果转换,才可以进行画图操作
sales1=sales['销售额'].groupby(sales['地区'],as_index=True).sum().reset_index()
'''
第1步:定义x和y坐标轴上的点
'''
#x坐标轴上点的数值
x=sales1['地区']
#y坐标轴上点的数值
y=sales1['销售额']
'''
第2步:使用plot绘制线条
第1个参数是x的坐标值,第2个参数是y的坐标值
'''
plt.plot(x,y,color='r',marker='o',linestyle='dashed')
#x轴文本
plt.xlabel('地区')
#y轴文本
plt.ylabel('销售额')
#标题
plt.title('各地区销售额')
'''
第3步:显示图形
'''
plt.show()
结果为
matplotlib也提供了非常多的图形,如条形图,散点图,热力图等等,基础的方法和上面的过程是一样的,就不一一进行详细讲解了