Python:Plt 条形图 - 不同颜色

2023-11-30

在Python中,我怎样才能使'reported'绿色条形,以及'UNREPORTED'酒吧红色? 我想为图表中每个已报告和未报告的条形赋予不同的颜色。

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)

您可以遍历条形图并检查给定索引的报告是否为“未报告”。如果是这种情况,请使用以下方法对条形图进行着色set_color.

enter image description here

import seaborn as sns
import matplotlib.pyplot as plt 

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, rep = zip(*new)    

plt.figure(figsize = (8, 6))

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

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

for i, bar in enumerate(bars):
    if rep[i] == 'UNREPORTED':
        bar.set_color("red")

plt.show()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python:Plt 条形图 - 不同颜色 的相关文章

随机推荐