如何用R中X轴的因子绘制点图?
我试图得到一个用于演示目的的a图(我知道它没有统计学意义,但正是为了讨论这个)。绘图必须在X轴(数据$Site)上有系数,在Y轴上有某个值(数据$Count)。对于每个“站点”,必须显示一个大小等于数据$Mean的点。我当前的代码及其结果如下:如何用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
> 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,…)
添加它们。