左边矮的火山图如何写代码调成右边高的火山图呢?可见左边的火山图因为高度太低,导致4个注释差异基因只显示了3个,调成右侧高的图就解决了4个注释放不下的问题。y轴刻度和范围均没有变化仅把y轴拉长了
要将左边矮的火山图调整为右边高的火山图,可以通过修改 y 轴的限制和增加点的大小等方法来实现。以下是示例代码:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 读取数据
data = pd.read_csv('your_data_file.csv')
# 修改 y 轴的限制范围
plt.ylim([-50, 150])
# 增加点的大小并调整位置
plt.scatter(data['log2FoldChange'], data['-log10pvalue'], s=15, edgecolors='none', color=np.where(data['-log10pvalue']>=30,'red','blue'))
# 增加注释
for i in range(len(data)):
if data['Gene'][i] in ['GeneA', 'GeneB', 'GeneC', 'GeneD']:
plt.annotate(data['Gene'][i], xy=(data['log2FoldChange'][i], data['-log10pvalue'][i]), xytext=(data['log2FoldChange'][i]+0.5, data['-log10pvalue'][i]), fontsize=8, arrowprops=dict(facecolor='black', shrink=0.05))
# 显示图像
plt.show()
其中,ylim([-50, 150])
将 y 轴的限制范围设置为 -50 到 150,即将左右两边的距离拉长;s=15
增加点的大小,使其更容易被看到;color=np.where(data['-log10pvalue']>=30,'red','blue')
根据 -log10pvalue
的大小来决定点的颜色,将大于等于 30 的点标成红色;plt.annotate()
增加注释,用箭头指向对应的点,并显示相应的基因名称。
这样,就可以将左边矮的火山图调整为右边高的火山图了。根据实际情况,您可能需要进一步调整代码中的参数来获得最佳效果。