数据格式如下

这里选择fold值最大的前20个作图进行展示

代码如下


import seaborn as sns
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt infpkm="gene_diff2019102206.xls"
genename="Aoc1"
picpathname="Aoc1.test" df = pd.read_csv(infpkm,header=0,sep="\t") #根据绝对值大小从大到小进行排序
df = df.reindex(df['log2FoldChange'].abs().sort_values(ascending=False).index) #取前20行
df = df.iloc[:20,:] #获取最大的fold绝对值作为x轴的上下限
txlim = np.abs(df.loc[:,'log2FoldChange'].tolist()[0]) #获取作图的两列
pre_draw=df[['Datebase_type','log2FoldChange']]
#选择绝对值大于0.58496的数据
pre_draw = pre_draw[np.abs(pre_draw['log2FoldChange'])>0.58496] #将所有绝对值大于3的整数设置3,绝对值大于3的负数,设置为-3
#df[np.abs(df)>3] = np.sign(df)*3 logfold = [float(n) for n in pre_draw['log2FoldChange'].tolist()]
ngroup = [str(n) for n in pre_draw['Datebase_type'].tolist()]
ax = sns.barplot(x=logfold, y=ngroup, color='blue', orient='h') ax.set_title('20 Top FoldChange of Gene '+str(genename)+' expression in different dataset', fontsize=15)
ax.set_ylabel('Datebase name', fontsize=15)
ax.set_xlabel('Log2(Fold change)', fontsize=15)
ax.set_xlim([-txlim-0.25, txlim+0.25])
plt.savefig(picpathname+'.png', format='png', dpi=50, bbox_inches='tight')
plt.savefig(picpathname+'.pdf', format='pdf', dpi=100, bbox_inches='tight')

图片效果如下:

seaborn做横向条形图的更多相关文章

  1. [转载] ul li css 做横向菜单

    原文地址: http://www.cnblogs.com/amylis_chen/archive/2011/09/24/2188398.html 第一步:建立一个无序列表 我们先建立一个无序列表,来建 ...

  2. 使用CollectionView做横向滑动分页效果:

    一开始几页滑动是没有问题的,等滑到三四个页面之后,就出现奇怪的缝隙,一开始死活找不到原因,最后在layout的代理方法minimumLineSpacingForSectionAtIndex返回值设置为 ...

  3. LinearLayout遇到的问题——利用LinearLayout做横向滑动冲突

    问题:当我添加两个TextView的时候,然后滑动,发现只生成了一个TextView. 就是 <?xml version="1.0" encoding="utf-8 ...

  4. 用ul、li做横向导航

    /* ul li以横排显示 */ /* 所有class为menu的div中的ul样式 */ div.menu ul { list-style:none; /* 去掉ul前面的符号 */ margin: ...

  5. ul li做横向导航栏例子

    /* ul li以横排显示 */ /* 所有class为menu的div中的ul样式 */ div.menu ul { list-style:none; /* 去掉ul前面的符号 */ margin: ...

  6. SignalR学习笔记(五) 横向扩展之SQL Server

    当一个Web应用程序达到一台服务器能力限制,即请求处理数量限制之后,有2种解决方案:纵向扩展和横向扩展. 纵向扩展即用更强的服务器(或虚拟机),或为当前的服务器添加更多的内存,CPU等 横向扩展即添加 ...

  7. 3.matplotlib绘制条形图

    plt.bar() # coding=utf-8 from matplotlib import pyplot as plt from matplotlib import font_manager my ...

  8. matplotlib系列——条形图

    import matplotlib.pyplot as plt import numpy as np import matplotlib x = ["战狼2","激情8& ...

  9. 5行Python代码就能实现刷爆全网的动态条形图!

    说起动态图表,最火的莫过于动态条形图了. 在B站上搜索「数据可视化」这个关键词,可以看到很多与动态条形图相关的视频. 好多视频都达到了上百万的播放量,属实厉害. 目前网上实现动态条形图现成的工具也很多 ...

随机推荐

  1. django.db.models.fields.related_descriptors.RelatedObjectDoesNotExist: Course has no coursedetail.

    错误描述: 一对一反向查询失败! 前提: Course和CourseDetail    OneToOne 原因: Course数据和CourseDetail数据没有一一对应.

  2. 按位与(&),或(|),异或(^),取反(~),左移(<<),右移(>>)

    C语言提供的位运算符列表:运算符 含义 描述& 按位与 如果两个相应的二进制位都为1,则该位的结果值为1,否则为0| 按位或 两个相应的二进制位中只要有一个为1,该位的结果值为1^ 按位异或 ...

  3. 分析第一个Android程序

    项目结构切换Project, 项目真实目录结构 { 1.    .gradle和idea 两个目录放置的都是Android Studio 自动生成的一些文件,我们无需关心,也不要去手动编辑. 2.AP ...

  4. [Security] Always use parameterized queries

    SQL databases are commonly used to store data; for example - your application could store user profi ...

  5. [HTML5] Using HTMLPortalElement to improve MPA preformance

    For multi pages application, it is very slow to navgiate between page by page, because it needs to r ...

  6. 持续集成学习5 jenkins自动化测试与构建

    一.jenkins参数 1.主要参数类型 2.触发构建参数 3.参数值的使用 4.给git仓库配置参数,让其构建的时候可以选择分支 5.配置password参数 6.添加Choice参数 7.其它好用 ...

  7. C++函数声明后面加throw()的作用

    原文地址:https://blog.csdn.net/to_baidu/article/details/53763683 C++里面为什么有时候在函数声明的时候在后面加throw()关键字? 解释: ...

  8. 1、kafka概述

    一.关于消息队列 消息队列是一种应用间的通信方式,消息就是是指在应用之间传送的数据,它也是进程通信的一种重要的方式. 1.消息队列的基本架构 producer:消息生产者. broker:消息处理中心 ...

  9. mysql 创建时间字段

    alter table table1 add order_date datetime null; mysql> select * from table1; +----------+------- ...

  10. QML学习(二)——<QML语法>

    一.Qml类型 QML类型分为三类:基本类型.QML对象类型以及JavaScript类型 1 基本类型 我们可以再qt帮助文档中搜索基本类型查看 基本类型的概念是相对于QML对象类型而言的,QML 对 ...