如题,有多个变量的数据,想要在一张图上看它们各自的分布情况,有大佬可以指导一下应该怎么做吗?
我的数据结构是这样的,不同组织的不同基因都有一个score。
GeneID Adrenal.gland Cerebellum Brain Fetal.brain Fetal.liver
ENSG00000000419
ENSG00000000457
ENSG00000000460
ENSG00000000938
ENSG00000000971
如题,有多个变量的数据,想要在一张图上看它们各自的分布情况,有大佬可以指导一下应该怎么做吗?
我的数据结构是这样的,不同组织的不同基因都有一个score。
GeneID Adrenal.gland Cerebellum Brain Fetal.brain Fetal.liver
ENSG00000000419
ENSG00000000457
ENSG00000000460
ENSG00000000938
ENSG00000000971
数值型,浮点型做散点图都可以, 给你提供几段代码, 分别是用matplotlib、seaborn和pandas-bokeh作图, 你参考下, 看哪个和你的数据结构相似, 你可以修改下:
如果是一下子出很多图(多子图的显示), 需要进一步修改.
matplotlib
import numpy as np
import pandas as pd
import faker # 生成模拟数据
import matplotlib.pyplot as plt
import warnings
warnings.filterwarnings('ignore') # 不提示警告
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
f = faker.Faker(locale='zh-CN')
# 创建数据
data = pd.DataFrame()
for i in range(500):
datai = pd.DataFrame({'姓名':f.name(),
'销售数量':f.random_int(),
'金额':f.random_int(),
'利润':f.random_int(),},
index=[i]) # 必须有
data = data.append(datai)
data.head()
#方法一
plt.scatter(x=data['销售数量'][:200],y=data['金额'][:200],s=data['利润'][:200]/100,c='red',alpha=0.5)
plt.scatter(x=data['销售数量'][200:],y=data['金额'][200:],s=data['利润'][200:]/100,c='blue',alpha=0.5)
plt.xlabel('销售数量')
plt.ylabel('销售金额')
方法二:
data.plot.scatter(x='销售数量',y='金额',c='利润')
seaborn
import seaborn as sns
sns.set()
# 读取数据
planets = pd.read_csv('C:/Users/yyz/Desktop/python数据分析基础/data/seaborn-data-master/planets.csv')
planets.head()
# 创建图表
sns.scatterplot(x="distance", # x轴
y="orbital_period",# y轴
hue="year", # 颜色分类
size="mass", # 大小分类
palette='Spectral_r', # 调色盘
sizes=(10, 200), # 大小区间
data=planets)
pandas-bokeh
# 导入工具包
import pandas_bokeh
import numpy as np
import pandas as pd
# 作图数据
df = pd.read_csv('C:/Users/yyz/Desktop/pandas-bokeh/data/iris.csv')
df.columns = ['花萼长度','花萼宽度','花瓣长度','花瓣宽度','物种']
df['物种'].replace(['setosa','versicolor','virginica'],['山鸢尾','杂色鸢尾','维吉尼亚鸢尾'],inplace=True)
df.head()
# 修改其中的一个数值,为了查看散点大小
df.loc[13, "花萼长度"] = 15
#散点图
p_scatter = df.plot_bokeh.scatter(
x="花瓣长度",
y="花萼宽度",
size="花萼长度",# 大小
category="物种", # 作为分类的字段列
title="鸢尾花卉数据集可视化")