可以在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")
答案 0 :(得分: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")
然后我会使用melt
包中的reshape2
。
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
中,我设置了控制不同情节的东西的名称。点按国家/地区着色,并按值调整大小。但是如果你选择的话,你可以全部切换。
但是,我不知道这是你想要做的比较!