根据第三个variables生成一个点的大小变化的散点图

可以在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") 

 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的评论和编辑,

重新创build一部分数据:

 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") 

然后我会使用reshape2包中的melt

 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我设置了控制我的情节的不同部分的东西的名字。 这些点是由国家的颜色,大小的价值。 但是如果你愿意的话,你可以切换这个。

但是,我不知道这是你想做的比较!