我的线图部分位于0
的x轴上方和下方。
如何为绿线上方的所有区域着色,以及红色下方的所有区域?
这是代码:
hydropathy_dict = {"I":-0.528,
"L":-0.342,
"F":-0.370,
"V":-0.308,
"M":-0.324,
"P":-0.322,
"W": -0.270,
"H": 2.029,
"T": 0.853,
"E": 3.173,
"Q": 2.176,
"C": 0.081,
"Y": 1.677,
"A":-0.495,
"S": 0.936,
"N": 2.354,
"D": 9.573,
"R": 4.383,
"G": 0.386,
"K": 2.101
}
seq = 'CHCRRSCYSTEYSYGTCTVMGINHRFCC'
hydropathy_list = []
plot_x_axis = []
for aa in seq:
hydropathy_list.append(hydropathy_dict[aa])
print(acc,hydropathy_list)
for i in range(len(hydropathy_list)):
plot_x_axis.append(i)
plt.plot(plot_x_axis,hydropathy_list)
plt.plot([0,len(hydropathy_list)],[0,0])
plt.show()
答案 0 :(得分:2)
试试这个:
ynew
修改强>
(回应评论中的问题)
{{1}}内的语句{{1}}需要{{1}}作为一个numpy数组(简单列表不会起作用)。
Scipy.interpolate()用于沿曲线获得更多点,因此,颜色完全填充目标区域。
使用原始点,结果如下所示:
答案 1 :(得分:1)
看看matplotlib fill-between demo。这肯定会回答你的问题。
但是,据说你的代码没有显示任何数字定义,这使得这更难。通常您会执行以下操作:
fig, ax = plt.figure()
ax.plot(plot_x_axis, line_1)
ax.plot(plot_x_axis, line_2)
ax.fill_between(plot_x_axis, line_1, line_2, color='r')
ax.fill_between(plot_x_axis, line_2, line_1, color='g')
答案 2 :(得分:0)
使用以下格式:
import matplotlib.pyplot as plt
x = range(10)
plt.fill_between(x,0,100,color='red')
plt.fill_between(x,0,-100,color='blue')
plt.show()