python绘制气泡图

全部代码如下:

import matplotlib.pyplot as plt

import numpy as np

import pandas as pd

df = pd.read_csv('data.csv')

pathways = df['pathway'].tolist()

num_genes = df['num_genes'].tolist()

p_values = df['p_value'].tolist()

# 示例pathway数据

for i in range(len(pathways)):

    pathway = pathways[i]

    genes = num_genes[i]

    p_value = p_values[i]

    print(f"pathway: {pathway}")

    print(f"number of genes: {genes}")

    print(f"p-value: {p_value}")

    print("")

# 根据数量和显著性数据设置气泡的大小和颜色

bubble_sizes = np.array(num_genes) * 5  # 气泡的大小与基因数量成正比

bubble_colors = -np.log10(p_values)  # 气泡的颜色与-p值成正比

# 创建气泡图

plt.figure(figsize=(10, 8))

plt.scatter(p_values,range(0, len(pathways)),s=bubble_sizes, c=bubble_colors, cmap='coolwarm', alpha=0.7, edgecolor='k')

# 设置纵坐标刻度标签为信号通路名称

plt.yticks(range(0,len(pathways)),pathways, fontsize=10)

# 设置图表标题和轴标签

plt.title('Pathway Bubble Plot')

plt.xlabel('-log10(p-value)')

# 添加颜色条

cbar = plt.colorbar(fraction=0.01,pad=0.08)

cbar.set_label('-log10(p-value)')

#创建图例

for gene in [1, 10, 20]:

    plt.scatter([],[], c='b',

                s=gene*10,

                alpha=0.3,

                label=str(gene))

plt.legend(scatterpoints=2,

           labelspacing=1,

           title="Number of Genes",

           frameon=False,

           bbox_to_anchor=(1, -0.05), loc=3, borderaxespad=1)

# 显示图表

plt.grid(True)

plt.tight_layout()

plt.tight_layout(rect=[0, 0, 0.85, 1])

plt.show()

# rect 参数是一个包含四个元素的列表,定义了一个矩形(left, bottom, right, top)来限制子图的布局区域。

# left:左侧边界的相对位置(0 到 1)。

# bottom:底部边界的相对位置(0 到 1)。

# right:右侧边界的相对位置(0 到 1)。

# top:顶部边界的相对位置(0 到 1)。

 示例数据:

链接:https://pan.baidu.com/s/1eWYYKHcsN6vhSexrket_8w?pwd=lwf7 
提取码:lwf7

示例图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FrontScience

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值