R语言ggplot2 如何调整火山图坐标轴的高矮/长短?

左边矮的火山图如何写代码调成右边高的火山图呢?可见左边的火山图因为高度太低,导致4个注释差异基因只显示了3个,调成右侧高的图就解决了4个注释放不下的问题。y轴刻度和范围均没有变化仅把y轴拉长了

img

要将左边矮的火山图调整为右边高的火山图,可以通过修改 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() 增加注释,用箭头指向对应的点,并显示相应的基因名称。

这样,就可以将左边矮的火山图调整为右边高的火山图了。根据实际情况,您可能需要进一步调整代码中的参数来获得最佳效果。