Python 如何区分堆叠条形图中的22个变量?

Python 如何区分堆叠条形图中的22个变量?,python,pandas,colors,visualization,plotly,Python,Pandas,Colors,Visualization,Plotly,我有一个熊猫数据框架,包含75个样本(行)和22种不同人类细胞类型(列)的测量值,如下所示: import pandas as pd import numpy as np import plotly.plotly as py import cufflinks as cf cf.set_config_file(offline=False, world_readable=True, theme='ggplot') #pandas dataframe: df = pd.DataFrame( np.

我有一个熊猫数据框架,包含75个样本(行)和22种不同人类细胞类型(列)的测量值,如下所示:

import pandas as pd
import numpy as np
import plotly.plotly as py
import cufflinks as cf

cf.set_config_file(offline=False, world_readable=True, theme='ggplot')

#pandas dataframe:
df = pd.DataFrame(
np.random.rand(75, 22), columns=    
['B cells naive','B cells memory','Plasma cells','T cells CD8','T cells CD4 naive','T cells CD4 memory resting','T cells CD4 memory activated','T cells follicular helper','T cells regulatory (Tregs)','T cells gamma delta','NK cells resting','NK cells activated','Monocytes','Macrophages M0','Macrophages M1','Macrophages M2','Dendritic cells resting','Dendritic cells activated','Mast cells resting','Mast cells activated','Eosinophils','Neutrophils']
)

df.iplot(kind="bar", barmode="stack")
我想想象一下75个样本中22种细胞类型中的每一种有多少。所以我想使用一个堆叠的条形图,其中每个条形代表一个样本,堆栈显示样本中每个单元格类型的估计数量。以下是使用Plotly生成的图形:

问题:堆叠条形图中表示的单元格类型没有唯一且可区分的颜色。例如,有三种单元格类型具有相同的颜色(红色),这使得图形毫无意义,因为我们无法可视化每个样本中每个单元格类型的频率

问题:有哪些可能的方法来区分每个样本的细胞类型。。。有什么想法可以用什么颜色和/或图案来解决这个问题吗

除了堆叠条形图,你认为还有其他可视化方法吗


谢谢

我只能看到6种主要颜色。只画这些。数据可视化是一门艺术,也是一门科学。本文可能会有所帮助:想一想,也许您可以对每个示例中的贡献进行排序,以便最大的单元类型贡献位于每个条的底部(或顶部)。接下来,我不认为你会得到22种可区分的颜色,也许只是用数字标记单元格类型,而不是用数字标记线段。除非你想显示数据和关系有多混乱,否则你不想要单一的条形图。对于观察者来说,一眼就能看到的东西太多了,这违背了一开始就有图表的目的。我建议用热图代替。你可以让样本沿着一个轴,细胞在另一个轴上。然后你可以按类型对细胞进行分组,也可以按相似性对样本进行排序。我应该先问这个,但是。。。你想用图片告诉观众什么故事?或者,这是通过图表寻找故事的情况吗?如果是为了你自己的分析,那么你有数百种选择,不需要将大量数据塞进一个表示中。没有理由你不能阅读22个单独的条形图,每个单元格类型一个。也许从那里你可以研究散射图矩阵中的细胞类型组合?看看这本书。我还建议您研究主成分分析(PCA)作为降维方法。(这75个样品在22个维度上有所不同。)我只能看到6种主要颜色。只画这些。数据可视化是一门艺术,也是一门科学。本文可能会有所帮助:想一想,也许您可以对每个示例中的贡献进行排序,以便最大的单元类型贡献位于每个条的底部(或顶部)。接下来,我不认为你会得到22种可区分的颜色,也许只是用数字标记单元格类型,而不是用数字标记线段。除非你想显示数据和关系有多混乱,否则你不想要单一的条形图。对于观察者来说,一眼就能看到的东西太多了,这违背了一开始就有图表的目的。我建议用热图代替。你可以让样本沿着一个轴,细胞在另一个轴上。然后你可以按类型对细胞进行分组,也可以按相似性对样本进行排序。我应该先问这个,但是。。。你想用图片告诉观众什么故事?或者,这是通过图表寻找故事的情况吗?如果是为了你自己的分析,那么你有数百种选择,不需要将大量数据塞进一个表示中。没有理由你不能阅读22个单独的条形图,每个单元格类型一个。也许从那里你可以研究散射图矩阵中的细胞类型组合?看看这本书。我还建议您研究主成分分析(PCA)作为降维方法。(这75个样品沿22个尺寸不同。)