标签: data-visualization

热图中x轴上的对角线标注方向

在R中创建热图已成为许多帖子,讨论和迭代的主题.我的主要问题是将格子levelplot()或基本图形中可用解决方案的视觉灵活性image()与基本heatmap(),pheatmap pheatmap()或gplots'的轻松聚类结合起来很棘手heatmap.2().这是我想要改变的一个小细节 - x轴上标签的对角线方向.让我告诉你我在代码中的观点.

#example data
d <- matrix(rnorm(25), 5, 5)
colnames(d) = paste("bip", 1:5, sep = "")
rownames(d) = paste("blob", 1:5, sep = "")
Run Code Online (Sandbox Code Playgroud)

您可以使用levelplot()以下方法轻松更改方向到对​​角

require(lattice)
levelplot(d, scale=list(x=list(rot=45)))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但应用聚类似乎很痛苦.其他视觉选项也是如此,例如在热图单元格周围添加边框.

现在,转移到实际的heatmap()相关功能,聚类和所有基本视觉效果都非常简单 - 几乎不需要调整:

heatmap(d)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

所以在这里:

require(gplots)
heatmap.2(d, key=F)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

最后,我最喜欢的一个:

require(pheatmap)
pheatmap(d) 
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但所有这些都无法旋转标签.手册pheatmap建议我可以使用grid.text自定义标签.真是太高兴 - 尤其是在聚类和更改显示标签的顺序时.除非我在这里遗漏了什么......

最后,还有一件旧货image().我可以旋转标签,一般来说它是最可定制的解决方案,但没有聚类选项.

image(1:nrow(d),1:ncol(d), d, axes=F, ylab="", xlab="")
text(1:ncol(d), 0, srt = 45, labels = rownames(d), xpd …
Run Code Online (Sandbox Code Playgroud)

label r data-visualization heatmap lattice

26
推荐指数
5
解决办法
3万
查看次数

Seaborn:带有频率的countplot()

我有一个带有名为"AXLES"的列的Pandas DataFrame,它可以取3-12之间的整数值.我试图使用Seaborn的countplot()选项来实现以下情节:

  1. 左侧y轴显示数据中出现的这些值的频率.轴延伸为[0%-100%],每10%刻度线.
  2. 右y轴显示实际计数,值对应于由左y轴确定的刻度标记(每10%标记一次).
  3. x轴显示条形图的类别[3,4,5,6,7,8,9,10,11,12].
  4. 条形顶部的注释显示该类别的实际百分比.

下面的代码给出了下面的图表,其中包含实际计数,但我找不到将它们转换为频率的方法.我可以使用频率,df.AXLES.value_counts()/len(df.index)但我不知道如何将这些信息插入Seaborn countplot().

我还找到了注释的解决方法,但我不确定这是否是最佳实现.

任何帮助,将不胜感激!

谢谢

plt.figure(figsize=(12,8))
ax = sns.countplot(x="AXLES", data=dfWIM, order=[3,4,5,6,7,8,9,10,11,12])
plt.title('Distribution of Truck Configurations')
plt.xlabel('Number of Axles')
plt.ylabel('Frequency [%]')

for p in ax.patches:
        ax.annotate('%{:.1f}'.format(p.get_height()), (p.get_x()+0.1, p.get_height()+50))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

编辑:

我使用以下代码更接近我需要的东西,使用Pandas的条形图,抛弃Seaborn.感觉就像我使用了很多变通方法,并且必须有一种更简单的方法来实现它.这种方法的问题:

  • orderPandas的条形图功能中没有关键字,因为Seaborn的countplot()有,所以我不能像在countplot()中那样绘制3-12中的所有类别.即使该类别中没有数据,我也需要显示它们.
  • 由于某种原因,辅助y轴会使条形和注释混乱(请参阅在文本和条形图上绘制的白色网格线).

    plt.figure(figsize=(12,8))
    plt.title('Distribution of Truck Configurations')
    plt.xlabel('Number of Axles')
    plt.ylabel('Frequency [%]')
    
    ax = (dfWIM.AXLES.value_counts()/len(df)*100).sort_index().plot(kind="bar", rot=0)
    ax.set_yticks(np.arange(0, 110, 10))
    
    ax2 = ax.twinx()
    ax2.set_yticks(np.arange(0, 110, 10)*len(df)/100)
    
    for p in ax.patches:
        ax.annotate('{:.2f}%'.format(p.get_height()), (p.get_x()+0.15, p.get_height()+1))
    
    Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

python data-visualization matplotlib pandas seaborn

26
推荐指数
3
解决办法
4万
查看次数

Python的任何"漂亮"数据可视化库?

有很多用于Javascript的"漂亮打印"可视化库.例如那里列出的那些.

谷歌搜索'python可视化库'只会出现像VTK和mayavi这样的东西,这些东西主要用于严格的科学用途.

那么,你知道上面链接中哪些类似于那些Javascript的Python库吗?我特别喜欢Javascript Infovis Toolkit.

python graphics data-visualization

25
推荐指数
3
解决办法
2万
查看次数

最快的Javascript图表库

那里有大量的Javascript图表库.以下是我最近使用或研究的一些内容:

  • highstock.js(和highcharts.js)
  • recline.js
  • rickshaw.js
  • graphael
  • infovis

http://d3js.org/上,您还可以通过数据可视化实现更多非常酷的例子.

根据我的经验,您可以使用这些库(特别是highstock)达到极限,根据您要在图表上显示的点数和您在给定页面上想要的图表数量,您的浏览器性能会受到严重阻碍.在这个例子中,我特别谈论折线图,但我认为其他类型也是如此.有没有人对具有大型数据集和给定页面上的大量图表的不同javascript图表库的性能有经验?

javascript performance charts data-visualization

25
推荐指数
2
解决办法
1万
查看次数

ggplot缩放颜色渐变到数据范围之外的范围

我正在寻找一种方法来拉伸两个值之间的颜色渐变并标记图例,而不管数据集中的数据值范围如何.基本上,是否有功能等同ylim() 于颜色渐变?

给定通常在-1和1之间绘制az值的代码,如果中断在数据范围内,我可以绘制并标记渐变:

library(ggplot2)

#generator from http://docs.ggplot2.org/current/geom_tile.html
pp <- function (n, r = 4) { 
  x <- seq(-r * pi, r * pi, len = n)
  df <- expand.grid(x = x, y = x)
  df$r <- sqrt(df$x^2 + df$y^2)
  df$z <- cos(df$r^2) * exp(-df$r / 6)
  return(df)
}

t <- pp(30)
summary(t)
b <- c(-.5, 0, .5)
colors <- c('navyblue', 'darkmagenta', 'darkorange1')
p <- ggplot(data = t, aes(x = x, y = y))+
  geom_tile(aes(fill = z))+
  scale_fill_gradientn(colors = colors, …
Run Code Online (Sandbox Code Playgroud)

r data-visualization colors ggplot2

25
推荐指数
1
解决办法
3万
查看次数

R包用于运动捕捉数据分析和可视化

我是R的新手,喜欢它,但我很惊讶完全缺乏分析动作捕捉数据的可靠包.

最简单的动作捕捉文件只是一个巨大的表格,每个点都附有一个"XYZ"坐标,并且对于每个捕获的帧都是如此.我知道我可以在R中找到单独的方法和函数来执行复杂的操作(如主成分分析),或者我可以绘制所有点的时间序列.但是,当我正在寻找可以在统计上教育我分析人类运动的例子,并提供用于数据视觉表示的漂亮工具箱时,R原来是一个寒冷的沙漠.另一方面,MATLAB具有运动捕捉工具箱MoCap工具箱,尤其是后者具有很好的绘制和分析捕获的选项.但是说实话 - 与R相比,MATLAB的可视化引擎相当丑陋.

对R动作捕捉包的一些具体要求包括:

  • 读取,编辑,可视化和转换mocap数据
  • 动力学和运动学分析
  • 时间序列和主成分分析
  • 动画数据

我在这里遗漏了什么(在我的谷歌搜索中)或者R里面真的没有mocap包吗?有没有人试过在R中玩动作捕捉数据?你能给我一些指示吗?

matlab r data-visualization

24
推荐指数
1
解决办法
2359
查看次数

D3.js和Cytoscape.js有什么区别?

D3.js和Cytoscape.js有什么区别?

为什么有人会选择Cytoscape而不是D3.js?

javascript data-visualization graph-visualization d3.js cytoscape.js

24
推荐指数
1
解决办法
7306
查看次数

有没有一种方法可以将CSV列转换为层次关系?

我有700万份生物多样性记录的csv,其中分类学级别为列。例如:

RecordID,kingdom,phylum,class,order,family,genus,species
1,Animalia,Chordata,Mammalia,Primates,Hominidae,Homo,Homo sapiens
2,Animalia,Chordata,Mammalia,Carnivora,Canidae,Canis,Canis
3,Plantae,nan,Magnoliopsida,Brassicales,Brassicaceae,Arabidopsis,Arabidopsis thaliana
4,Plantae,nan,Magnoliopsida,Fabales,Fabaceae,Phaseoulus,Phaseolus vulgaris
Run Code Online (Sandbox Code Playgroud)

我想在D3中创建一个可视化文件,但是数据格式必须是网络,其中每个列的不同值都是上一个特定值的列的子级。我需要从csv转到类似这样的内容:

{
  name: 'Animalia',
  children: [{
    name: 'Chordata',
    children: [{
      name: 'Mammalia',
      children: [{
        name: 'Primates',
        children: 'Hominidae'
      }, {
        name: 'Carnivora',
        children: 'Canidae'
      }]
    }]
  }]
}
Run Code Online (Sandbox Code Playgroud)

我还没有想到不使用上千个for循环就如何做到这一点的想法。是否有人对如何在python或javascript上创建此网络提出建议?

javascript python data-visualization hierarchical-data d3.js

24
推荐指数
4
解决办法
521
查看次数

C++中的散点图

在C++中绘制散点图的最佳方法是什么?

您是否将数据写入文件并使用其他工具?在Python中是否有类似matplotlib的库?

c++ data-visualization scatter-plot

23
推荐指数
4
解决办法
7万
查看次数

D3.js中的一个简单的散点图示例?

我正在寻找一个如何在D3.js中绘制散点图的示例.

通过查看官方D3.js示例(尽管它们令人印象深刻),我无法找到一个简单的例子.我只是想知道如何:

  • 绘制并标记x轴和y轴
  • 在图表上绘制散点图.

我确实在这个D3可重用库中找到了这个例子,但它比我需要的要复杂得多,外部文件使得很难提取基本点.有人能指点我在一个简单的散点图示例开始吗?

非常感谢.

javascript data-visualization d3.js

22
推荐指数
1
解决办法
3万
查看次数