我尝试生成一个图并用python保存该图的图像。虽然“绘图”的价值观似乎是好的,我可以得到我的图片,图表的规模是严重移位
如果您将教程示例中的correct graph与从不同数据集生成的bad graph进行比较,则曲线从底部到早期进行切割:Y轴应该从最高值的正上方开始,我还应该看到最高X值的曲线(在我的示例中大约为10^3)
但老实说,我认为问题是y轴的比例,但实际上不知道我应该改变什么参数来解决它。我试图玩一些数字(见下面的脚本),但没有任何好的结果
这是计算和生成图形图像的代码:
import numpy as np
hic_data = load_hic_data_from_reads('/home/besy/Hi-C/MOREX/TCC35_parsedV2/TCC35_V2_interaction_filtered.tsv', resolution=100000)
min_diff = 1
max_diff = 500
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(12, 12))
for cnum, c in enumerate(hic_data.chromosomes):
if c in ['ChrUn']:
continue
dist_intr = []
for diff in xrange(min_diff, min((max_diff, 1 + hic_data.chromosomes[c]))):
beg, end = hic_data.section_pos[c]
dist_intr.append([])
for i in xrange(beg, end - diff):
dist_intr[-1].append(hic_data[i, i + diff])
mean_intrp = []
for d in dist_intr:
if len(d):
mean_intrp.append(float(np.nansum(d)) / len(d))
else:
mean_intrp.append(0.0)
xp, yp = range(min_diff, max_diff), mean_intrp
x = []
y = []
for k in xrange(len(xp)):
if yp[k]:
x.append(xp[k])
y.append(yp[k])
l = plt.plot(x, y, '-', label=c, alpha=0.8)
plt.hlines(mean_intrp[2], 3, 5.25 + np.exp(cnum / 4.3), color=l[0].get_color(),
linestyle='--', alpha=0.5)
plt.text(5.25 + np.exp(cnum / 4.3), mean_intrp[2], c, color=l[0].get_color())
plt.plot(3, mean_intrp[2], '+', color=l[0].get_color())
plt.xscale('log')
plt.yscale('log')
plt.ylabel('number of interactions')
plt.xlabel('Distance between bins (in 100 kb bins)')
plt.grid()
plt.ylim(2, 250)
_ = plt.xlim(1, 110)
fig.savefig('/home/besy/Hi-C/MOREX/TCC35_V2_results/filtered/TCC35_V2_decay.png', dpi=fig.dpi)
我想问题出在比例上,我需要y轴从10^-1(0.1)开始,为了改变这一点,我尝试了以下方法:
min_diff = 0.1
.
.
.
dist_intr = []
for diff in xrange(min_diff, min((max_diff, 0.1 + hic_data.chromosomes[c]))):
.
.
.
plt.ylim((0.1, 20))
但是这个值返回:“需要整数参数,得到float”
我还试着玩: max_diff、plt.ylim和plt.xlim参数有一点点变化,但变化不大
我想问你什么参数/s和我需要如何改变,以生成正确聚焦的图形图像。先谢谢你
目前没有回答
相关问题 更多 >
编程相关推荐