R:任意顺序的连接点
R: Connecting Points in Arbitrary Order
我正在使用 R 编程语言。
我在 R 中生成了以下随机数据集并绘制了这些点的图:
library(ggplot2)
set.seed(123)
x_cor = rnorm(5,100,100)
y_cor = rnorm(5,100,100)
my_data = data.frame(x_cor,y_cor)
x_cor y_cor
1 43.95244 271.50650
2 76.98225 146.09162
3 255.87083 -26.50612
4 107.05084 31.31471
5 112.92877 55.43380
ggplot(my_data, aes(x=x_cor, y=y_cor)) + geom_point() + ggtitle("Travelling Salesman Example")
假设我想按以下顺序将这些点连接在一起:1 与 3、3 与 4、4 与 5、5 与 2、2 与 1
我可以创建一个包含此顺序的新变量:
my_data$order = c(3, 1, 4, 5, 2)
是否可以使用ggplot2制作这种图表?
我尝试了以下代码 - 但它根据它们出现的顺序而不是自定义顺序连接点:
ggplot(my_data, aes(x = x_cor, y = y_cor)) +
geom_path() +
geom_point(size = 2)
我可能可以手动重新排列数据集以匹配此顺序 - 但有更简单的方法吗?
过去,我使用“igraph”制作了这类图表 - 但是可以使用 ggplot2 制作它们吗?
有人可以告诉我怎么做吗?
谢谢!
您可以这样订购您的数据:
my_data$order = c(1, 5, 2, 3, 4)
ggplot(my_data[order(my_data$order),], aes(x = x_cor, y = y_cor)) +
geom_path() +
geom_point(size = 2)
如果要关闭路径,使用geom_polygon
:
ggplot(my_data[order(my_data$order),], aes(x = x_cor, y = y_cor)) +
geom_polygon(fill = NA, color = "black") +
geom_point(size = 2)
我正在使用 R 编程语言。
我在 R 中生成了以下随机数据集并绘制了这些点的图:
library(ggplot2)
set.seed(123)
x_cor = rnorm(5,100,100)
y_cor = rnorm(5,100,100)
my_data = data.frame(x_cor,y_cor)
x_cor y_cor
1 43.95244 271.50650
2 76.98225 146.09162
3 255.87083 -26.50612
4 107.05084 31.31471
5 112.92877 55.43380
ggplot(my_data, aes(x=x_cor, y=y_cor)) + geom_point() + ggtitle("Travelling Salesman Example")
假设我想按以下顺序将这些点连接在一起:1 与 3、3 与 4、4 与 5、5 与 2、2 与 1
我可以创建一个包含此顺序的新变量:
my_data$order = c(3, 1, 4, 5, 2)
是否可以使用ggplot2制作这种图表?
我尝试了以下代码 - 但它根据它们出现的顺序而不是自定义顺序连接点:
ggplot(my_data, aes(x = x_cor, y = y_cor)) +
geom_path() +
geom_point(size = 2)
我可能可以手动重新排列数据集以匹配此顺序 - 但有更简单的方法吗?
过去,我使用“igraph”制作了这类图表 - 但是可以使用 ggplot2 制作它们吗? 有人可以告诉我怎么做吗?
谢谢!
您可以这样订购您的数据:
my_data$order = c(1, 5, 2, 3, 4)
ggplot(my_data[order(my_data$order),], aes(x = x_cor, y = y_cor)) +
geom_path() +
geom_point(size = 2)
如果要关闭路径,使用geom_polygon
:
ggplot(my_data[order(my_data$order),], aes(x = x_cor, y = y_cor)) +
geom_polygon(fill = NA, color = "black") +
geom_point(size = 2)