我有以下函数,它为a_positions绘制密度。现在,我想添加b_positions,该b_positions用透明颜色的a_positions覆盖。如何使用下面的函数在一个图中叠加a_positions和b_positions?
def plot_density(a_positions, b_positions, chr_name, chr_len, out_fname):
d = pd.DataFrame(a_positions)
d.hist(bins=100)
ax = plt.gca()
ax.set_xlabel(chr_name + " positions")
ax.set_ylabel("Density")
ax.set_title('', color='black')
#plt.subplots_adjust(bottom=.25, left=.25)
plt.ticklabel_format(style='plain')
ax.set_xlim(xmin=1, xmax=chr_len)
ax.set_xticks(pd.np.linspace(1, chr_len, 5))
plt.savefig(out_fname)
plt.close()
最佳答案
DataFrame.hist
接受alpha
关键字,该关键字控制透明度。因此,如果将alpha
的b_positions
设置为<1
,则应该可以看到其下方的a_positions
。
这是一个简单的示例:
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
df1 = pd.DataFrame(np.random.rand(100))
df2 = pd.DataFrame(np.random.rand(100))
df1.hist(bins=10,color='b')
df2.hist(bins=10,ax=plt.gca(),alpha=0.5,color='r')
plt.show()
关于python - 在一个图中叠加两个密度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33217400/