Python:Plt条形图 - 不同的颜色 [英] Python: Plt bar plot - different colors

查看:98
本文介绍了Python:Plt条形图 - 不同的颜色的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在 Python 中,如何将 'reported' 条设为绿色,将 'UNREPORTED' 条设为红色?我想为图表中的每个报告栏和未报告栏赋予不同的颜色.

In Python, how can I make the 'reported' bars green, and 'UNREPORTED' bars red? I want to give different color to each of the reported and UNREPORTED bars in my graph.

new = (('AXIN', 37, 'reported'),
     ('LGR', 30, 'UNREPORTED'),
     ('NKD', 24, 'reported'),
     ('TNFRSF', 23, 'reported'),
     ('CCND', 19, 'reported'),
     ('APCDD', 18, 'reported'),
     ('TRD', 16, 'reported'),
     ('TOX', 15, 'UNREPORTED'), 
     ('LEF', 15, 'reported'),
     ('MME', 13, 'reported'))

#sort them as most common gene comes first
new = sorted(new, key=lambda score: score[1], reverse=True) 
#X, Y zip of the tuple new are for plt.bar 
X, Y, _ = zip(*new)    

import seaborn as sns
sns.set()
import matplotlib.pyplot as plt 
%matplotlib inline

plt.figure(figsize = (20, 10))

mytitle = "Most common genes coexpressed with {gene1}, {gene2}, {gene3}, {gene4}".format(
    gene1="Axin2", gene2="Lef", gene3="Nkd1", gene4="Lgr5")
plt.title(mytitle, fontsize=40)

plt.ylabel('Number of same gene encounters across studies', fontsize=20)
ax = plt.bar(range(len(X)), Y, 0.6, tick_label = X, color="green") 
ax = plt.xticks(rotation=90)

new = tuple(new)

推荐答案

您需要将颜色列表或元组而不是仅一种颜色传递给 plt.bar .为此,您可以创建一个颜色字典,然后构建颜色列表.

You need to pass a list or tuple of colors instead of just 1 color to plt.bar. You can do so by creating a color dictionary, then building the list of color.

new = sorted(new, key=lambda score: score[1], reverse=True) 
# save the reporting type as R
X, Y, R = zip(*new)    

# create color dictionary
color_dict = {'reported':'green', 'UNREPORTED':'red'}

plt.figure(figsize = (20, 10))
mytitle = "Most common genes coexpressed with {gene1}, {gene2}, {gene3}, {gene4}".format(
    gene1="Axin2", gene2="Lef", gene3="Nkd1", gene4="Lgr5")
plt.title(mytitle, fontsize=40)

plt.ylabel('Number of same gene encounters across studies', fontsize=20)
# build the colors from the color dictionary
ax = plt.bar(range(len(X)), Y, 0.6, tick_label = X, color=[color_dict[r] for r in R])

这篇关于Python:Plt条形图 - 不同的颜色的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆