R - 从数据框创建散点图

use*_*748 5 plot r scatter-plot ggplot2 lattice

我有一个all看起来像这样的数据框:

http://pastebin.com/Xc1HEYyH

现在我想创建一个散点图,其中x轴的列标题和相应的值作为数据点.例如:

7|                 x  
6|          x      x  
5|  x       x      x     x    
4|  x       x            x 
3|                             x      x  
2|                             x      x
1|
 ---------------------------------------
    STM    STM    STM   PIC   PIC    PIC
   cold   normal  hot  cold  normal  hot
Run Code Online (Sandbox Code Playgroud)

这应该很容易,但我无法弄清楚如何.

问候

Aru*_*run 8

如果你想使用Hadley绘图,基本的想法ggplot2是获取表格的数据:

        x          y
col_names     values
Run Code Online (Sandbox Code Playgroud)

这可以通过使用meltHadley的功能来完成reshape2.不要?melt看到可能的参数.但是,这里因为我们想要融化整个data.frame,我们只需要,

melt(all) 
# this gives the data in format:
#   variable value
# 1 STM_cold   6.0
# 2 STM_cold   6.0
# 3 STM_cold   5.9
# 4 STM_cold   6.1
# 5 STM_cold   5.5
# 6 STM_cold   5.6
Run Code Online (Sandbox Code Playgroud)

在这里,x将是列variable,y并将是相应的value列.

require(ggplot2)
require(reshape2)
ggplot(data = melt(all), aes(x=variable, y=value)) + 
             geom_point(aes(colour=variable))
Run Code Online (Sandbox Code Playgroud)

如果您不想要颜色,那么只需删除aes(colour=variable)geom_point内部即可geom_point().

在此输入图像描述

编辑:我应该在这里提一下,你也可以geom_pointgeom_jitter那个替换它,给你,好吧,抖动点:

在此输入图像描述

  • +1.我不是一个普通的ggplot2用户,因此总是很高兴看到useRs可用的替代品.但是有几个批评.首先,在这种情况下,传说真的是必要的吗?我没有看到这个特定示例的任何附加价值.如果在每个变量中都有进一步的分组*,则可能有不同的颜色或形状和图例.其次,是否可以稍微控制抖动?我发现它有点分散了抖动如何为一些变量留下大漏洞,但让其他人看起来更集群. (2认同)

A5C*_*2T1 5

这里有两个选项需要考虑.第一个使用dotplot"格子"包:

library(lattice)
dotplot(values ~ ind, data = stack(all))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

第二个使用dotchart基础R的"图形"选项.要使用该dotchart功能,您需要包装您data.frameas.matrix:

dotchart(as.matrix(all), labels = "")
Run Code Online (Sandbox Code Playgroud)

请注意,此图形中的点不是 "抖动",而是按记录顺序显示.也就是说,最低点是第一个记录,最高点是最后一个记录.如果你放大了这个例子的情节,你会发现你有16条非常微弱的水平线.每行代表每列的一行.因此,如果您查看"STM_cold"或任何其他具有NA值的变量的点,您会在顶部看到一些空白行,其中没有可用数据.

这有其优点,因为如果按时间顺序记录值,它可能会显示随时间变化的趋势,但如果源数据框中的行太多,则可能也会有缺点.

在此输入图像描述