Python:Plt条形图-不同颜色
在Python中,如何使Python:Plt条形图-不同颜色,python,matplotlib,Python,Matplotlib,在Python中,如何使'reported'条变为绿色,使'UNREPORTED'条变为红色? 我想给图表中每个报告的和未报告的条赋予不同的颜色 new = (('AXIN', 37, 'reported'), ('LGR', 30, 'UNREPORTED'), ('NKD', 24, 'reported'), ('TNFRSF', 23, 'reported'), ('CCND', 19, 'reported'), ('APCDD', 18,
'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\u color
为条形图着色
您需要将颜色列表或元组传递给
plt.bar
,而不仅仅是一种颜色。您可以通过创建颜色字典,然后构建颜色列表来实现
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])
可能重复的
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])