如何用R中的X轴因子制作点图?

时间:2016-06-02 21:16:28

标签: r plot ggplot2

我正试图获得一个用于示范目的的情节(我知道这不是统计意义,但正是要讨论它)。该图必须包含X轴(Data $ Site)中的因子和Y轴中的某个值(Data $ Count)。对于每个“站点”,必须出现一个大小等于Data $ Mean的点。我目前的代码及其结果如下:

> is.factor(Data$Site)
TRUE
> Data$Site
[1] Creek  Shade  Valley
Levels: Creek Shade Valley

> Data$Count
[1] 2.1 3.0 8.5

> Data$Mean
[1] 1.456 2.3445 1.345

plot(Data$Site, Data$Count, type = "p", pch=15, cex=Data$Mean)

enter image description here

显然,我不想要线条。我想要大小为Data $ Mean的点数​​。在R中有快速而简洁的方法吗?我已经审查过像格子和ggplot这样的其他软件包无济于事。

3 个答案:

答案 0 :(得分:2)

在关闭轴的同时使用默认方法 - plot.default()。然后使用axis()函数创建自定义轴。在使用它们来设置cex之前,我使用了1/20比例。您可能不需要为数据执行此操作。

d<-data.frame(Site=c('A','B','C'),
              Mean=c(15,25,60),
              Count=c(100,200,400))
> is.factor(d$Site)
[1] TRUE

plot.default(d$Site,d$Count,type='p',axes = FALSE,cex=d$Mean/20)
axis(side = 1, at = as.numeric(d$Site), labels = d$Site)
axis(side=2, at=d$Count, labels = d$count)

enter image description here

答案 1 :(得分:1)

您也可以尝试symbols代替plot,也可以使用基本graphics套餐:

Data <- data.frame(Site = c("Creek", "Shade", "Valley"), Count = c(2.1, 3.0, 8.5), Mean = c(1.456, 2.3445, 1.345))
symbols(Data$Site, Data$Count, circles = Data$Mean, inches = 0.5)

您可以将符号更改为其他类型,例如squaresstars。参数inches设置为从默认值(1TRUE)减少大小。如需更多信息,请参阅?symbols

image

答案 2 :(得分:1)

以下是使用ggplot2的方式:

library(ggplot2)

Data <- data.frame(
  Site=c("Creek", "Shade", "Valley"),
  Count=c(2.1, 3.0, 8.5),
  Mean=c(1.456, 2.3445, 1.345)
)

ggplot(Data, aes(x=Site, y=Count, size=Mean)) + geom_point()

enter image description here