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

如何用R中X轴的因子绘制点图?,r,plot,ggplot2,R,Plot,Ggplot2,我试图得到一个用于演示目的的a图(我知道它没有统计学意义,但正是为了讨论这个)。绘图必须在X轴(数据$Site)上有系数,在Y轴上有某个值(数据$Count)。对于每个“站点”,必须显示一个大小等于数据$Mean的点。我当前的代码及其结果如下: > is.factor(Data$Site) TRUE > Data$Site [1] Creek Shade Valley Levels: Creek Shade Valley > Data$Count [1] 2.1 3.0

我试图得到一个用于演示目的的a图(我知道它没有统计学意义,但正是为了讨论这个)。绘图必须在X轴(数据$Site)上有系数,在Y轴上有某个值(数据$Count)。对于每个“站点”,必须显示一个大小等于数据$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)


显然,我不想要台词。我想要数据大小为$Mean的点。在R中有没有快速而简洁的方法?我已经查看了其他软件包,如lattice和ggplot,但没有效果。

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

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)
d为系数(d$Site)
[1] 真的
plot.default(d$Site,d$Count,type='p',axes=FALSE,cex=d$Mean/20)
轴(边=1,at=as.numeric(d$Site),标签=d$Site)
轴(边=2,at=d$计数,标签=d$计数)

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

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)
d为系数(d$Site)
[1] 真的
plot.default(d$Site,d$Count,type='p',axes=FALSE,cex=d$Mean/20)
轴(边=1,at=as.numeric(d$Site),标签=d$Site)
轴(边=2,at=d$计数,标签=d$计数)

您可以尝试
符号
而不是
绘图
,也可以从基本
图形
软件包:

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)

数据您可以尝试
符号
而不是
绘图
,也可以从基本的
图形
软件包:

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)

数据以下是使用
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()
库(ggplot2)

数据以下是使用
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()
库(ggplot2)

数据你好,我刚刚应用了你的建议,效果很好!但是我有一个疑问,有没有办法通过减少数字来绘制这个图呢?刚刚发现:
plot.default(d$Count,type='p',axes=F)
然后像你的例子一样添加axis。如果你只设置了
axis
(例如
axis(2)
)的边参数并跳过其余部分,它就会画出“漂亮的”勾号而不是依赖于数据点。虽然
axes=FALSE
删除了所有四个轴、勾号和标签,但您可以使用
xaxt='n'
仅删除x轴勾号和标签,然后使用
Axis(side=2,…)
添加它们。您好,我刚刚应用了您的建议,效果非常好!但是我有一个疑问,有没有办法通过减少数字来绘制这个图呢?刚刚发现:
plot.default(d$Count,type='p',axes=F)
然后像你的例子一样添加axis。如果你只设置了
axis
(例如
axis(2)
)的边参数并跳过其余部分,它就会画出“漂亮的”勾号而不是依赖于数据点。虽然
axes=FALSE
删除所有四个轴、勾号和标签,但您可以使用
xaxt='n'
仅删除x轴勾号和标签,然后使用
Axis(side=2,…)
添加它们。