癌症基因图谱( TCGA)数据库(三)数据可视化

数据集的数据矩阵图(Heatmap)

mport plotly.express as px
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
from Cython import inline
# from statsmodels.sandbox.regression.sympy_diff import df
# from sympy.physics.control.control_plots import matplotlib

file_dir=("D:\\python\\data\\BLCA_1.txt")
file_dir2=("D:\\python\\data\\BRCA_1.txt")
file_dir3=("D:\\python\\data\\LGG_1.txt")
file_dir4=("D:\\python\\data\\LUSC_1.txt")
file_dir5=("D:\\python\\data\\LUAD_1.txt")
#
name=[]
data=[]
with open(file_dir2, 'r') as f:
    for num, line in enumerate(f):
        #将所有数据合并成data
        if num>=0 and num < 33000:
            # print(line)
            # break
            sub_str = line.split('\t')
            name.append( sub_str[0])
            num_list_new = [float(x) for x in sub_str[1:]]  # 将list-str转为list-float,不包含第一个(RNA名称)
            data.append( num_list_new)
            # data_new = list(zip(*data))
# print(data_new)
# print(len(data_new))

##2
fig,ax = plt.subplots(figsize=(10,1))#设置图片的大小格式
# sns.set(font_scale=1.25)
sns.heatmap(
				# cbar=True,
				# annot=True, 
                #  square=True, 
                #  fmt='.2f',   
                  # annot_kws={'size': 10}, 
                  # yticklabels=cols.values,  # 列标签
                  # xticklabels=cols.values   # 行标签
            data=data,
             # linewidths=0.25,
            # linecolor='black',
            ax=ax,
            # annot=True,
            fmt='.1f',
            # cmap='OrRd',
            # robust=True,
                  )
plt.show()

在这里插入图片描述

直方图

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from pandas import Series,DataFrame

import palettable
import random
# file_dir=('TCGA1_matrix.CSV')
file_dir=("D:\\python\\data\\BLCA_1.txt")
file_dir2=("D:\\python\\data\\BRCA_1.txt")
file_dir3=("D:\\python\\data\\LGG_1.txt")
file_dir4=("D:\\python\\data\\LUSC_1.txt")
file_dir5=("D:\\python\\data\\LUAD_1.txt")
#
with open(file_dir, 'r') as f:
    for num, line in enumerate(f):
        if num ==0:
            sub_str = line.split('\t')
            name=sub_str[0]
            num_list_new = [float(x) for x in sub_str[1:]]#将list-str转为list-float,不包含第一个(RNA名称)
            print(name)
            break

print(line)
print(num_list_new)
# sub_str = line.split('\t')
# name=sub_str[0]
# num_list_new = [float(x) for x in sub_str[1:]]#将list-str转为list-float,不包含第一个(RNA名称)
data=num_list_new
#
# plt.figure(dpi=150)
# # data = pd_iris['sepal length(cm)']
n, bins, patches = plt.hist(x=data,
                            bins=30,#default: 10
                            cumulative=False,  # 默认False,是否累加频数或者频率,及后面一个柱子是前面所有柱子的累加
                            bottom=0,  # 设置子y轴方向基线,默认为0,高度=bottom to bottom + hist(x, bins)
                            histtype='bar',  # 直方图的类型默认为bar{'bar', 'barstacked', 'step', 'stepfilled'}
                            align='mid',  # 边界值的对齐方式,默认为mid{'left', 'mid', 'right'}
                            orientation='vertical',  # 水平还是垂直显示,默认垂直显示('vertical'),可选'horizontal'
                            rwidth=1.0,  # 每个柱子宽度,默认为1,此时显示50%
                            log=False,  # y轴数据是否取对数,默认不取对数为False
                            # color="blue",
                            color=palettable.colorbrewer.qualitative.Dark2_7.mpl_colors[3],
                            label="LUSC_"+name,  # 图例
                           
                            facecolor='black',  
                            edgecolor="black",  
                            stacked=False, 
                            alpha=0.5  
                            )
plt.xticks(bins) 

for patch in patches: 
    patch.set_facecolor(random.choice(palettable.colorbrewer.qualitative.Dark2_7.mpl_colors))

# 直方图绘制分布曲线
plt.plot(bins[:30], n, '--', color='#2ca02c')
plt.legend()
plt.show()

在这里插入图片描述

盒状图

#箱线图Boxplot
import pandas as pd
import plotly as py
import plotly.graph_objs as go
import numpy as np
import plotly.graph_objects as go

file_dir=("D:\\python\\data\\BLCA_1.txt")
file_dir2=("D:\\python\\data\\BRCA_1.txt")
file_dir3=("D:\\python\\data\\LGG_1.txt")
file_dir4=("D:\\python\\data\\LUSC_1.txt")
file_dir5=("D:\\python\\data\\LUAD_1.txt")
#
name=[]
data=[]
with open(file_dir5, 'r') as f:
    for num, line in enumerate(f):

        if num>0 and num < 11:
            print(line)
            # break
            sub_str = line.split('\t')
            name.append( sub_str[0])
            num_list_new = [float(x) for x in sub_str[1:]]  # 将list-str转为list-float,不包含第一个(RNA名称)
            data.append( num_list_new)
# print(data)


# x轴数据
x_data = name
# 生成y轴数据:生成数据同时指定数据类型
y_data = data

# 颜色设置
colors = ['rgba(93, 164, 214, 0.5)',
          'rgba(155, 144, 14, 0.5)',
          'rgba(44, 160, 101, 0.5)',
          'rgba(155, 65, 54, 0.5)',
          'rgba(27, 114, 255, 0.5)',
          'rgba(50, 100, 100, 0.5)',
          'rgba(36, 98, 14, 0.5)',
          'rgba(200, 50, 255, 0.5)',
          'rgba(250, 50, 69, 0.5)',
          'rgba(120, 96, 0, 0.5)']
fig = go.Figure()

# 通过zip函数生成6组不同的函数进行轨迹添加
# 生成不同的轨迹
for xd, yd, cls in zip(x_data, y_data, colors):
        fig.add_trace(go.Box(
            y=yd,  # y轴数据
            name=xd,  # 名称
            boxpoints='all',  # 箱体散点的显示
            jitter=0.5,  # 抖动距离
#             whiskerwidth=0.2,
            fillcolor=cls,  # 颜色
            marker_size=2,  # 标记大小
            line_width=1)  # 线宽
        )

# 布局设置
fig.update_layout(
    title='10组LUAD的RNA基因盒状图',
    yaxis=dict(
        autorange=True,
        showgrid=True,  # 显示网格
        zeroline=True,  # 0基准线
        dtick=5,
        gridcolor='rgb(255, 255, 255)',  # 网格和基准线设置
        gridwidth=1,
        zerolinecolor='rgb(255, 255, 255)',
        zerolinewidth=2,
    ),
    margin=dict(
        l=40,
        r=30,
        b=80,
        t=100,
    ),
    paper_bgcolor='rgb(243, 243, 243)',  # 背景设置
    plot_bgcolor='rgb(243, 243, 243)',
    showlegend=True  # 显示图例
)

fig.show()


在这里插入图片描述

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值