maplotlib数据可视化

这篇博客详细介绍了使用matplotlib进行数据可视化的各种方法,包括两种画图风格、简易线形图、散点图、直方图、颜色条配置、多子图创建、文字注释、自定义坐标轴刻度以及三维图的绘制。还提到了Seaborn库在数据可视化中的应用。
摘要由CSDN通过智能技术生成


1. 两种画图风格

import matplotlib.pyplot as plt
import matplotlib as mpl
plt.style.use('classic')#设置绘图风格

fig.savefig('picture_name.png')#当使用这个的时候,不需要使用show()函数
fig.show()

print(fig.canvas.get_supported_filetypes()#查看系统支持的文件格式

<1> matlab风格接口

x = np.linspace(0,10,100)

fig = plt.figure()
#创建两个子图中的第一个,设置坐标轴
plt.subplot(2,1,1)
plt.plot(x,np.sin(x))#行、列、子图标号
#创建两个子图中的第二个,设置坐标轴
plt.subplot(2,1,2)
plt.plot(x,np.cos(x))

plt.show()
#plt.gcf()得到当前图形
#plt.gca()得到当前坐标轴

这种方法很容易 出现问题,比如当创建上面的第二个子图时,不太容易回到第一个子图。

<2> 面向对象接口

面向对象接口可以使用更复杂的场景,更好地控制你自己的图形。

#先创建图形网格
#ax是一个包含两个Axes对象的数组
fig,ax = plt.subplots(2)

x = np.linspace(0,10,100)
ax[0].plot(x,np.sin(x))
ax[1].plot(x,np.cos(x))
plt.show()

2. 简易线形图

要画matplotlib图形时,都需要先创建一个图形fig和一个坐标ax,创建图形与坐标轴的最简单的做法如下所示:

#线形图
#1. 创建图形和坐标
fig = plt.figure()
ax = plt.axes()
x = np.linspace(0,10,100)
ax.plot(x,np.cos(x))
ax.plot(x,np.sin(x))#和上面构成两条线
# plt.plot(x,np.cos(x))
plt.show()

在matplotlib里面,figure可以被看成是一个能容纳各种坐标轴、图形、文字和标签的容器。axes是一个带有刻度和标签的矩形,最终会包含所有可视化的图形元素。
一般通常会用变量fig表示一个图形实例,用变量ax表示一个坐标轴实例或一组坐标轴实例。

调整图形:线条的颜色和风格

通常对图形的第一次调整是调整它线条的颜色和风格。

ax.plot(x,np.cos(x),color='blue')
"""
color的取值格式:
blue 标准颜色名称
g    缩写颜色代码(rgbcmyk)
0.75 范围在0-1的灰度值
FFDD44十六进制(RRGGBB,00~FF)
(1.0,0.2,0.3)RGB元组,范围在0~1
chartreuse HTML颜色名称
"""

调整线条风格

ax.plot(x,np.sin(x),linestyle='dotted')
"""
linestyle的取值格式:
solid(或'-')		实线
dashed(或'--')	虚线
dashdot(或'-.')	点划线
dotted(或':')		实点线
"""

上面两种的混合

ax.plot(x,np.sin(x+2),'-.k')#'-.'和'k'的混合
"""
常见的格式:
'--c'		绿色实线
'-g'		青色虚线
'-.k'		黑色点划线
':r'		红色实点线
"""

调整图形:坐标轴上下限

最基础的方法:plt.xlim(),plt.ylim()

plt.xlim(-1,11)
plt.ylim(-1.5,1.5)
#将数字倒过来可以实现逆序

第二种方法

#1. 
plt.axis([-1,11,-1.5,1.5])
#参数[xmin,xmax,ymin,ymax]
#注意不要和axes搞混。

#2. 
plt.axis('tight')#按照图形的内容自动收紧坐标轴
plt.axis('equal')#让屏幕上显示的图形分辨率为1:1,x轴长度与y轴长度相等

设置图形标签

图形标签

plt.title('some curves')
plt.xlabel('x')
plt.ylabel('y')

创建图例。通过label参数,以及方法legend()

ax.plot(x,np.sin(x),linestyle='dotted',label='sin(x)')
ax.plot(x,np.sin(x+2),'-.k',label='sin(x+2)')
plt.legend()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值