一、背景介绍

可视化数据分析目前有很多方式,比如最简单的excel进行可视化数据分析、matlab可视化数据分析、power bi、tableau等,如果单纯的进行可视化,那么python不是最好的工具,但是如果是做可视化数据分析,那么python绝对是一个不错的选择,因为python有多个非常流行的可视化工具包,比如Matplotlib、Seaborn 、Pandas、ggplot(2)等。本文将介绍一下常用的工具包的使用,并动手画一些图表。

二、Matplotlib介绍

Matplotlib是一个常用的2D绘图库,也是最基本的绘图库。

1-安装 可以参考


Python 中matplotlib 如何安装?www.zhihu.com


python 设置x轴标签 python产生x轴数据_python mayavi 三维


2-开始绘制第一张表(某地十天最高气温变化曲线)


import


python 设置x轴标签 python产生x轴数据_python_02

第一张图


现在第一张表就绘制完成了,但是线条、坐标轴、文本标签、标题等都是默认的,下面将进行一些设置。


import matplotlib.pyplot as plt #导入库
x=range(1,11,1)#x轴数据 1--10
y=[18,19,19,20,24,23,23,26,30,34]#y轴数据
plt.rcParams['font.sans-serif']=['SimHei']#解决中文乱码问题
plt.xlabel('日期')
plt.ylabel('最高气温')
plt.plot(x, y, color='r', linestyle='-.', marker='*', linewidth=1, markersize=5)#作图
plt.show()#展示


python 设置x轴标签 python产生x轴数据_3D_03

第二张图

第二张图已经绘制好了,在这张图中,我们修改了x y轴标签名称和线条信息(linestyle='-.', marker='*', linewidth=1, markersize=5 分别代表线条的形状、标记的样子、线条的宽度和标记的大小) ,看起来好了很多。但是还是存在一些问题,问题一:x轴是2-10之间的偶数,我们希望他显示的是“1日”----“10日”。问题二:希望设置一下刻度 。问题三:希望添加一下文本标签 。下面是解决办法。


import matplotlib.pyplot as plt #导入库
x=range(1,11,1)#x轴数据 1--10
datas=['1日','2日','3日','4日','5日','6日','7日','8日','9日','10日']
y=[18,19,19,20,24,23,23,26,30,34]#y轴数据
plt.rcParams['font.sans-serif']=['SimHei']#解决中文乱码问题
plt.xlabel('日期')
plt.ylabel('最高气温')
plt.xlim(1,10)#设置x轴刻度范围
plt.ylim(15,35)#设置y轴刻度范围
plt.plot(x, y, color='r', linestyle='-.', marker='*', linewidth=1, markersize=5)#作图
plt.xticks(x,datas)#修改x轴标签,相当于覆盖原来的
for a,b in zip(x,y):
    plt.text(a,b+0.05,'%.1f'%b,ha = 'center',va = 'bottom',fontsize=9)
plt.show()#展示


python 设置x轴标签 python产生x轴数据_3D_04

第三个图

3-开始绘制散点图

绘制散点图的过程与绘制折线图过程十分相似,只需要吧plot函数改为scatter函数即可,所以不再详细介绍。


import matplotlib.pyplot as plt #导入库
x=range(1,11,1)#x轴数据 1--10
datas=['1日','2日','3日','4日','5日','6日','7日','8日','9日','10日']
y=[18,19,19,20,24,23,23,26,30,34]#y轴数据
plt.rcParams['font.sans-serif']=['SimHei']#解决中文乱码问题
plt.xlabel('日期')
plt.ylabel('最高气温')
plt.xlim(1,10)#设置x轴刻度范围
plt.ylim(15,35)#设置y轴刻度范围
# plt.plot(x, y, color='r', linestyle='-.', marker='*', linewidth=1, markersize=5)#作图
plt.scatter(x,y)
plt.xticks(x,datas)#修改x轴标签,相当于覆盖原来的
for a,b in zip(x,y):
    plt.text(a,b+0.05,'%.1f'%b,ha = 'center',va = 'bottom',fontsize=9)
plt.show()#展示


python 设置x轴标签 python产生x轴数据_python mayavi 三维_05

第四张图:根据折线图改成的散点图

4-开始绘制柱形图

柱形图绘制只需要采用plt.bar函数,与前面绘制相似。值得注意的是,柱形图和直方图是两种不同的图,条形图是用条形的长度表示各类别频数的多少,其宽度(表示类别)则是固定的;直方图是用面积表示各组频数的多少,矩形的高度表示每一组的频数或频率,宽度则表示各组的组距,因此其高度与宽度均有意义,绘制直方图采用的是plt.hist函数,本文不再介绍。另外还可以绘制饼形图、面积图、热力图、箱型图,本文也不再介绍。


import matplotlib.pyplot as plt #导入库
x=range(1,11,1)#x轴数据 1--10
datas=['1日','2日','3日','4日','5日','6日','7日','8日','9日','10日']
y=[18,19,19,20,24,23,23,26,30,34]#y轴数据
plt.rcParams['font.sans-serif']=['SimHei']#解决中文乱码问题
plt.xlabel('日期')
plt.ylabel('最高气温')
plt.xlim(1,10)#设置x轴刻度范围
plt.ylim(15,35)#设置y轴刻度范围
# plt.plot(x, y, color='r', linestyle='-.', marker='*', linewidth=1, markersize=5)#作图
# plt.scatter(x,y)
plt.bar(x,y)#绘制柱形图
plt.xticks(x,datas)#修改x轴标签,相当于覆盖原来的
for a,b in zip(x,y):
    plt.text(a,b+0.05,'%.1f'%b,ha = 'center',va = 'bottom',fontsize=9)
plt.show()#展示


python 设置x轴标签 python产生x轴数据_3D_06

第五幅图:柱状图

5-3D曲面图的绘制

说明一下:对于3D图形的绘制,python也不是一个太好的选择,跟Matlab和mayavi或者plotly相比还是有很大的差距。本着学习的态度,还是用python画一下3D曲面图。

三维图形绘制需要(x,y,z)三组值,可以通过numpy和Axes3D函数会议3D图形。

其中Axes3D是mpl_toolkits.mplot3d中的一个绘图函数,mpl_toolkits.mplot3d

是Matplotlib里面专门用来画三维图的工具包。


import


python 设置x轴标签 python产生x轴数据_python_07

Z=X+Y函数图像