可视化多个“直方图”(条形图)


9

我很难选择正确的方式来可视化数据。假设我们有一家书店出售书籍,每本书至少都有一个类别

对于书店,如果我们计算书籍的所有类别,我们将获得一个直方图,该直方图显示属于该书店特定类别的书籍数量。

我想形象化书店的行为,我想看看他们是否喜欢某个类别而不是其他类别。我不想看看他们是否一起都喜欢科幻小说,但我想看看他们是否平等地对待每个类别。

我有约100万家书店。

我想到了4种方法:

  1. 采样数据,仅显示500家书店的直方图。使用10x10网格在5个单独的页面中显示它们。4x4网格的示例:

    多个直方图1

  2. 与#1相同。但是这次根据它们的计数desc对x轴值进行排序,因此如果有帮助,就很容易看到。

  3. 想象一下将#2中的直方图像一个甲板一样放在一起并以3D形式显示它们。像这样:
    3D直方图

  4. 代替使用第三轴使用颜色来表示颜色,而是使用热图(2D直方图): 2D直方图
    如果通常书店偏爱某些类别而不是其他类别,它将以从左到右的漂亮渐变显示。

您还有其他表示多个直方图的可视化想法/工具吗?


4
我认为您的意思是条形图而不是直方图
Rob Hyndman

@Rob:直方图不是代表频率分布的特殊类型的条形图吗?我正在尝试可视化许多书店的类别频率。
nimcap 2010年

1
@nimcap否,因为直方图在连续变量上,并且书籍类别是分类变量。

@mbq假设一家书店有3本书,其类别为:B1:[c1,c2,c3] B2:[c1,c3] B3:[c1,c4]。当我们汇总类别计数时,我们得到[c1 x 3,c2 x 1,c3 x 2,c4 x 1]。这还不足以生成直方图吗?
nimcap 2010年

2
@nimcap不,它足以生成条形图。直方图可以例如针对一本书的价格进行。

Answers:


12

如您所知,您的问题没有简单的答案!

我想您是否有兴趣寻找奇怪的或不同的书店?如果是这种情况,那么您可以尝试使用PCA之类的工具(有关更多详细信息,请参见Wikipedia 群集分析页面)。

为了给您一个想法,请考虑以下示例。您有26个书店(名称分别为A,B,.. Z)。所有书店都类似,除了:

  1. Z店只出售一些历史书籍。
  2. OY商店出售的浪漫小说数量超过平均水平。

一个主要组成部分图突出显示了这些商店,以供进一步调查。

这是一些示例R代码:

> d = data.frame(Romance = rpois(26, 50), Horror = rpois(26, 100), 
               Science = rpois(26, 75), History = rpois(26, 125))
> rownames(d) = LETTERS
#Alter a few shops
> d[15:25,][1] = rpois(11,150)
> d[26,][4] = rpois(1, 10)
#look at the data
> head(d, 2)
       Romance Horror Science History
 A      36    107      62     139
 B      47     93      64     118
> books.PC.cov = prcomp(d)
> books.scores.cov = predict(books.PC.cov)
# Plot of PC1 vs PC2
> plot(books.scores.cov[,1],books.scores.cov[,2],
       xlab="PC 1",ylab="PC 2", pch=NA)
> text(books.scores.cov[,1],books.scores.cov[,2],labels=LETTERS)

这给出了以下图:

PCA图http://img265.imageshack.us/img265/7263/tmplx.jpg

注意:

  1. z商店是一个偏僻的地方。
  2. 其他商店组成两个不同的组。

其他可能性

您也可以查看GGobi,我从未使用过它,但是看起来很有趣。


感谢您的宝贵答复。即使用我的母语也很难描述情况:)让我尝试。我对书店是否偏爱特定类别不感兴趣,但我想看看他们是否偏爱类别。其实这就是我所期望的。假设我有3个书店(B1,B2,B3)和4个类别(C1,C2,C3,C4)。这些是他们的销售数据:B1(1、1、20、20)B2(90、1、1、1),B3(1、1、1、30)。查看这些数据,我可以看出他们偏爱某些类别。但是如果数据像B1(20,30,20,20)B2(90,100,100,100),B3(30,30,40,40)我不能这么说。
nimcap 2010年

在我的示例中,OY商店偏爱浪漫书籍。这就是为什么这些商店在PC图中位于不同的组中的原因。
csgillespie 2010年

2
我认为这是一个很好的一般答案,但作为一个实际答案,处理这么多数据点将是残酷的。
约翰

1
+1这当然不是OP想要的,但仍然是她/他应该想要的。

1
+1 PCA“脚踏实地”应用程序的绝佳示例。
nico 2010年

3

我建议使用一个没有定义名称的名称(可能是“平行绘图”),看起来像这样:

替代文字

基本上,您将所有书店的所有计数绘制为x轴上列出的类别上的点,并用线将每个书店的结果连接起来。不过,对于100万条线路,这可能仍太纠结。该概念来自csgillespie已经提到的GGobi。


1
平行图在很大程度上取决于变量的“正确”排序,因此对于太多类别而言,这将变得乏味。正确的来源似乎是A.Inselberg,1981
。– Benjamin Bannier 2010年

3
它们被称为平行坐标图:en.wikipedia.org/wiki/Parallel_coordinates
西蒙·伯恩

@西蒙谢谢; @honk我同意,这是我不使用它们的原因之一。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.