首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在ggplot2中用圆点图画圆标记最优区域

在ggplot2中用圆点图画圆标记最优区域
EN

Stack Overflow用户
提问于 2013-10-10 10:53:19
回答 1查看 1K关注 0票数 2

我有一个关于具有x和y特性的发电厂的点图。最好的发电厂是那些x和y都很高的发电厂。现在,我想想象一下我的地块中哪些区域是理想的,而对于发电厂来说则不那么理想。

我需要的是这样的东西:

有什么想法吗?我试着用geom_point绘制巨大的圆点,但它们会根据我的绘图的导出分辨率而改变大小,我也尝试过绘制像here这样的圆圈,但是如果它的部分不在实际的绘图范围内,ggplot就不能正确地绘制圆圈

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-10 12:48:18

当使用@joran的循环函数here时,这似乎是可行的:

代码语言:javascript
运行
复制
# prepare data for circles
green <- circleFun(center = c(5, 5), diameter = 1.5, npoints = 100)
yellow <- circleFun(center = c(5, 5), diameter = 3, npoints = 100)
orange <- circleFun(center = c(5, 5), diameter = 4.5, npoints = 100)
red <- circleFun(center = c(5, 5), diameter = 6, npoints = 100)

dat <- rbind(green, yellow, orange, red)

# specify levels to get the order of colours right,
# and set the plotting order from large (red) to small (green) circle
dat$fill <- factor(rep(c("green", "yellow", "orange", "red"), each = 100),
                   levels = rev(c("green", "yellow", "orange", "red")))

# dummy data for points
dat2 <- data.frame(x = rnorm(100, mean = 3), y = rnorm(100, mean = 3))

ggplot(data = dat, aes(x = x, y = y)) +
  geom_polygon(aes(fill = fill)) +
  geom_point(data = dat2, aes(x = x, y = y)) +
  coord_cartesian(xlim = c(0, 5), ylim = c(0, 5)) + 
  scale_fill_manual(values = rev(c("green", "yellow", "orange", "red")))

工作不太好的事情:

由于某些原因,当(1)使用theme(legend.position = "none")关闭图例时,圆圈被扭曲;(2)当使用scale_fill_identity()而不是scale_fill_manual()从'dat‘中的“填充”变量中选择颜色时。我不知道为什么。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19293810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档