导入 mat 表格文件画条形图和直方图
2023-09-27 14:20:15 时间
条形图
直方图
完整代码
import scipy.io as scio
from matplotlib import pyplot as plt
dataFile1 = 'feature1.mat'
data1 = scio.loadmat(dataFile1)#导入mat文件,输出为字典格式
dataFile2 = 'feature2.mat'
data2 = scio.loadmat(dataFile2)
#print(data['feature'])
feature1=data1['feature']#获取字典名为‘feature’的数据,数据格式是array数组
feature2=data2['feature']
print(feature1.shape)#查看数组大小
print(feature2.shape)
#print(feature2[:,0].shape)
#print(feature[:,0])#第一列
v1=feature1[:,0]#取出数组第一列的数组
v2=feature2[:,0]
#print(v1[0],v1[1],v1[2])
#生成空的数组
x1=[]
y1=[]
x2=[]
y2=[]
#记录第一个mat文件第一列数据的相同数字出现的频次
for num in range(35):
index=0
for i in range(1422):
if v1[i] == num:
index=index+1
x1.append(num)
y1.append(index)
print("%d数字有%d个"%(num,index))
print("-------------------------------------")
#记录第二个mat文件第一列数据的相同数字出现的频次
for num in range(35):
index=0
for i in range(1623):
if v2[i] == num:
index=index+1
x2.append(num)
y2.append(index)
print("%d数字有%d个"%(num,index))
result=sum(y2)
print("总共个数%d"%result)
#条形图 (bar)
plt.figure(figsize=(10, 8), dpi=100)
plt.bar(x1, y1, color = 'g', align = 'center',alpha=0.7,label='feature1') #需要x1,y1两个参数
plt.bar(x2, y2, color = 'b', align = 'center',alpha=0.5,label='feature2')
plt.title('feature1-2')
plt.ylabel('num')
plt.xlabel('index')
plt.legend()
#直方图(hist)
plt.figure(figsize=(10, 8), dpi=100)
plt.hist(v1,bins=60,color='b',align='mid',alpha=0.7,label='feature1')#需要v1,bins两个参数,bins是条形图个数,包含间隔
plt.hist(v2,bins=60,color='g',align='mid',alpha=0.5,label='feature2')
plt.legend()
plt.title('feature1-2')
plt.ylabel('num')
plt.xlabel('index')
plt.show()
提示
如果有两组数据,需要合并到一张图显示,那么就会用到两种颜色
同样的,两种颜色混合显示会出现新的颜色,为了区分开来
plt.bar 画条形图可以调整align参数,选择'center'或者'edge'
plt.hist 画直方图可以调整 align 参数,选择'mid'或者'left'或者'right'
目的是能把两种颜色错开一定的距离,方便观察数据的变化!!!
为了视觉上的感觉,建议还是设置一下 alpha 参数,调整两种颜色的透明度,看起来会舒服很多!
相关文章
- Shell:综述【可以解释shell规定的语法命令的解释器】【它接收应用程序/用户命令,然后调用操作系统内核】【shell脚本:多条shell命令可以编写在一个文件中,文件中的指令可以按照顺序执行】
- sql server使用bcp导出txt文件然后导入到mysql
- 命令行模式下 MYSQL导入导出.sql文件的方法
- Java环境解析apk文件信息
- mysql使用load导入csv文件所遇到的问题及解决方法
- 将数据从XML文件导入和处理到SQL Server表中
- zabbix高级玩法之通过xml文件一次性导入
- 使用 vi/vim 时,粘贴进新创建文件或空文件的首行内容丢失的解决方法
- ESX虚拟机文件列表详解
- navicat里导入和导出.sql文件
- 在Python中使用moviepy进行视频剪辑时输出文件报错 'NoneType' object has no attribute 'stdout'问题
- Python使用import导入模块时执行了模块的文件但报ModuleNotFoundError错误的愚蠢问题
- 【linux c learn 之stat】获取文件的属性
- Navicat如何导入和导出sql文件
- 将SQL文件导入MySql
- ‘vue‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。
- Flutter 文件读写---path_provider
- 在线问题反馈模块实战(十八):实现excel台账文件记录批量导入功能
- linux中导入sql文件
- c--文件读写--文本读写
- 通过FTP无法删除文件
- mysql导入导出sql文件
- 【Android 安装包优化】Android 应用中 7zr 可执行程序准备 ( Android Studio 导入可执行 7zr 程序 | 从 Assets 资源文件拷贝 7zr 到内置存储 )
- 文件上传之Nginx解析漏洞