python利用特征进行可视化样本显示_利用python进行可视化数据分析

本文介绍了Python进行可视化数据分析的优势,并详细讲解了Matplotlib的使用,包括绘制折线图、散点图、柱形图和3D曲面图。通过实例展示了如何设置图表细节,如坐标轴标签、线条样式和文本标签。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、背景介绍

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

二、Matplotlib介绍

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

1-安装 可以参考

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

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

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.plot(x,y)#作图
plt.show()#展示

c7a6acdeea524ead58cb7664d1975f08.png
第一张图

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

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()#展示

b1445ad129569449256fe7ce57bc4bf9.png
第二张图

第二张图已经绘制好了,在这张图中,我们修改了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()#展示

b6f74073969e19423a43d6f7f1f6dad5.png
第三个图

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()#展示

94fa067cea26f7e1d2d029d7007be949.png
第四张图:根据折线图改成的散点图

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()#展示

2d78d3a3715489b7c3dd4e106cbbeb51.png
第五幅图:柱状图

5-3D曲面图的绘制

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

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

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

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

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d.axes3d import Axes3D
import numpy as np
fig=plt.figure()
axes3d=Axes3D(fig)
x=np.arange(-10.0,10.0,0.01)
y=np.arange(-10.0,10.0,0.01)
X,Y=np.meshgrid(x,y)
Z=X+Y
axes3d.plot_surface(X,Y,Z)
plt.show()

a605f98b867a27d5941d54a83d17a552.png
Z=X+Y函数图像
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值