0

可以在 R 中为点的大小生成一个图表,以表示每年的文档数。我曾尝试使用散点图在 Excel 中生成这样的图表,但没有用。

我知道这可以使用 R 中的世界地图和地图气泡来完成,但如果它可以只使用没有世界地图的图表来完成,那将非常有用。

我在这里StackOverFlow Post上找到了这段代码

year <- 1:5 
logtrans <- log(year) 
size <- rep(15,5) 
intel2 <- data.frame(HexLogClock=c("#330000", "#FFFFCC", "#660000",
                                   "#FF0000", "#00FF00"),
                     stringsAsFactors=FALSE) 
symbols(year, logtrans, circles=size, inches=0.25, bg=intel2$HexLogClock) 

我希望能够产生这个数字,但圆圈的大小会根据每年的值而改变。

干杯,杰斯

示例数据集(抱歉格式化)

Country Year 2008   Year 2009 Year 2010 Year 2011
Argentina   35  60  89  120
Austrailia  56  89  75  100
Canada            25    65  89  148
Ireland 25  65  90  200
Italy             27    75  45  100
New Zealand 56  98  36  54
Spain             78    54  100 89
United Kingdom  56  102 158 238
United States   45  99  179 250

我希望能够使用上面的 TXT 文件执行此操作,我使用命令读取数据!

 myData3 <- read.delim(file="noofpublications_Collab2.txt", header = TRUE, sep = "\t")
4

1 回答 1

2
symbols(year, logtrans, circles=logtrans, inches=0.25, bg=intel2$HexLogClock) 

通常你会使用一个data.frame:

DF <- data.frame(year, logtrans, color=intel2$HexLogClock)

然后调用symbols变为:

symbols(DF$year, DF$logtrans, circles=DF$logtrans, inches=0.25, bg=DF$color) 

这也可以在更高级的绘图库之一中完成。我的偏好是ggplot2

library(ggplot2)
ggplot(DF, aes(x=year, y=logtrans, colour=color, size=logtrans)) + geom_point()\\

根据 OP 的评论和编辑,

重新创建一部分数据:

dat <- structure(list(country = c("argentina", "australia", "canada", "ireland", "italy"), year08 = c(35, 56, 25, 25, 27), year09 = c(60, 89, 65, 65, 75), year10 = c(89, 75, 89, 90, 45), year11 = c(120, 100, 148, 200, 100)), .Names = c("country", "year08", "year09", "year10", "year11"), row.names = c(NA, -5L), class = "data.frame")

然后我会meltreshape2包中使用。

library(reshape2)
dat.melt <- melt(dat, id.var='country')

然后用 ggplot 绘图:

ggplot(dat.melt, aes(x=variable, y=value, colour=country, size=value)) + geom_point()

aes我已经设置了控制我的情节不同部分的事物的名称。这些点按国家/地区着色,并按值大小。但是,如果您愿意,您可以将其全部切换。

但是,我不知道这是否是您要进行的比较!

于 2012-06-20T18:33:54.650 回答