数据可视化实战——1.展示多级分类数据
创始人
2024-03-30 18:24:46
0

文章目录

  • 前言
  • 一、数据筛选
  • 二、数据处理
    • 2.1 数据来源统计
    • 2.2 分级数据可视化


前言

大家好✨,这里是bio🦖。这次为大家带来的是多级分类数据的可视化,阅读本文你将学习到
1.如何筛选出你想要的数据
2.数据可视化图像的优化
3.NA值的处理

所用的语言是Python,全部过程及代码在MyGithub,感兴趣的读者可以取看看!


一、数据筛选

数据来源于Virion database,想要跟做的读者可以下载试试,如果访问不了,可能需要挂载VPN。打开数据我们能看到一些缺失值在宿主、病毒以及TaxID,所以首先对数据的筛选可以是选择这四项值存在的数据。

这里有一个值得注意的点,解码方式使用ISO-8859-1能够解决乱码问题。选择这个解码主要还是要看你的数据采用什么方式编码。

import pandas as pdwith open('/home/bio_kang/virus_host_virion/Virion.csv','rb') as f:lines = f.readlines()data_procession = []
for line in lines:if len(line) < 34:continueelse:data = line.decode('ISO-8859-1').strip('\n').split('\t')if data[0] == '' or data[1]=='' or data[2]=='' or data[3] == '' :continueelse:data_procession.append(data)data = pd.DataFrame(data_procession[1:-1],columns=data_procession[0])

处理完后在jupyter里面,可以看到数据如下图
在这里插入图片描述

图一,处理后数据图

二、数据处理

2.1 数据来源统计

Virion数据库的数据来自于别的数据库,对其进行统计有利于了解数据的来源比例(那些数据库的数据更科学可信)。

# library matplotlib
import matplotlib.pyplot as plt# extract data
data_from = data['Database'].value_counts()# draw graph
plt.figure(dpi=300,figsize=(24,8)) # set the size and dpi
plt.pie(data_from, explode=(0,0,0,0,0.1,0.2,0.3), autopct='%3.2f%%', pctdistance=1.1) # draw
plt.legend(labels=data_from.index, loc="right", bbox_to_anchor=(1,1)) # legend location
plt.savefig("database_statistic.png", format='png', bbox_inches='tight', dpi=300, transparent=True) # save graph

这些代码都比较容易理解。结果图如下

在这里插入图片描述

图二,数据来源统计图

2.2 分级数据可视化

分级数据的展示方式有很多种,今天介绍的是sunburst旭日图。在绘图之前,要对数据进行处理成绘图需要的格式。

# extract data and remove duplication data
host_data = data['HostTaxID']
host_data = host_data.drop_duplicates()# write a file
host_taxid = list(host_data)
with open('/home/ouyangkang/Learning/graduation/virus_host/statistic_virion/host.txt','w') as f:f.writelines(list(map(lambda x:x+'\n', host_taxid)))# utilize linux system in jupyter and use "taxonkit" to obtain taxonomic information
import os
os.system(' cat host.txt | /home/ouyangkang/software/anaconda3/envs/bio/bin/taxonkit reformat -I 1 -f "{p};{c};{o};{f};{g};{s}" > taxon_host.txt ')# convert txt format to csv format
with open("/home/ouyangkang/Learning/graduation/virus_host/statistic_virion/taxon_host.txt", 'r') as f:taxon = f.readlines()
taxon_data = []
for line in taxon:line = line.strip('\n').split('\t')[1]taxon_data.append(line.split(';'))
write_data = pd.DataFrame(taxon_data,columns=["Phylum","Class","Order","Family","Genus","Species"])
write_data.to_csv('taxon_host.csv',index=None)

在这里插入图片描述

图三,分类数据处理后图

然后进行绘图,绘制的还能动,大家可以按照代码绘制试试。

import plotly.express as px
import pandas as pd
import plotlydata_host = pd.read_csv('taxon_host.csv')
data_host = data_host.fillna(value='Unclassfied')
fig = px.sunburst(data,path=['Phylum','Class','Order','Family','Genus'])
fig.show()plotly.offline.plot(fig,filename='Host_taxon.html')

在这里插入图片描述

图四,分类数据旭日图

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
群晖外网访问终极解决方法:IP... 写在前面的话 受够了群晖的quickconnet的小水管了,急需一个新的解决方法&#x...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
Azure构建流程(Power... 这可能是由于配置错误导致的问题。请检查构建流程任务中的“发布构建制品”步骤,确保正确配置了“Arti...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...