Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用R中的ggplot2在带有单个椭圆的散点图中的点_R_Ggplot2_Scatter Plot_Ellipse - Fatal编程技术网

使用R中的ggplot2在带有单个椭圆的散点图中的点

使用R中的ggplot2在带有单个椭圆的散点图中的点,r,ggplot2,scatter-plot,ellipse,R,Ggplot2,Scatter Plot,Ellipse,我的数据集由4列组成,如下所示: 左侧的两列表示地理结构的坐标XY,左侧的两列表示“每个”地理单元的大小(南北和东西直径) 我想用图形表示一个散点图,其中绘制所有坐标,并在每个点上绘制一个椭圆,包括每个地理单元的直径 手动,仅使用两点,图像应如下所示: 我如何使用ggplot2实现它 您可以从ggforce下载数据使用geom_ellipse(): 库(ggplot2) 图书馆(警队) d我没有向中添加任何新代码。一切功劳都应归于克劳斯。我只是用实际数据进行测试,并向OP展示如何发布数据 需

我的数据集由4列组成,如下所示:

左侧的两列表示地理结构的坐标XY,左侧的两列表示“每个”地理单元的大小(南北和东西直径)

我想用图形表示一个散点图,其中绘制所有坐标,并在每个点上绘制一个椭圆,包括每个地理单元的直径

手动,仅使用两点,图像应如下所示:

我如何使用ggplot2实现它

您可以从ggforce下载数据

使用
geom_ellipse()

库(ggplot2)
图书馆(警队)

d我没有向中添加任何新代码。一切功劳都应归于克劳斯。我只是用实际数据进行测试,并向OP展示如何发布数据

需要加载包

# install.packages(c("tidyverse"), dependencies = TRUE)
library(tidyverse)
library(ggforce) # devtools::install_github("thomasp85/ggforce")
读取数据

tbl <- read.table(
text = "
X Y Diameter_N_S Diameter_E_W
-4275   1145    77  96
-4855   1330    30  25
-4850   1612    45  90
-4990   1410    15  15
-5055   1230    60  50
-5065   1503    43  45
-5135   1305    40  50
-5505   1190    55  70
-5705   1430    90  40
-5645   1535    52  60
", header = TRUE, stringsAsFactors = FALSE) %>% as_tibble()
执行

ggplot(tbl, aes(x0 = X, y0 = Y, a = Diameter_E_W, b = Diameter_N_S, angle = 0)) +
        geom_ellipsis() + geom_point(aes(X, Y), size = .5) + coord_fixed() + theme_bw()

如果您提供与您的问题相一致的答案,则更有可能得到良好且迅速的回答。我们可以利用它来向您展示如何回答您的问题。希望我的手动图像能有所帮助!但情况不同。太棒了!你看过我喜欢的那篇文章了吗?接下来要做的是制作一些可以使用的数据,例如,
df如果有人想帮助你,他们将需要你的数据。从图像中获取数据是很困难的。相反,请发布有效的R代码来生成数据,这样就可以通过复制/粘贴来实现。我添加了一个链接来下载数据
ggplot(tbl, aes(x0 = X, y0 = Y, a = Diameter_E_W, b = Diameter_N_S, angle = 0)) +
        geom_ellipsis() + geom_point(aes(X, Y), size = .5) + coord_fixed() + theme_bw()