在R中绘制没有绘图的ggplot2图例
图中的图例分别描述了图的每个部分,用于以图形形式显示统计数据。在本文中,我们将看到如何在 ggplot2 中只绘制图例而不绘制图。
首先,让我们看看如何绘制带有图例的图形,以便差异明显。为此,使用library()函数加载 ggplot2 包并创建一个 DataFrame。要创建 R 图,我们使用ggplot()函数,为了获得散点图,我们将geom_point()函数添加到 ggplot()函数。
例子:
R
# Load Package
library("ggplot2")
# Create a DataFrame
data <- data.frame(
Xdata = rnorm(10),
Ydata = rnorm(10),
LegendData = c("ld-01", "ld-02", "ld-03",
"ld-04", "ld-05", "ld-06",
"ld-07", "ld-08", "ld-09",
"ld-10"))
# Create a Scatter Plot and assign it
# to gplot data object
gplot <- ggplot(data, aes(
Xdata, Ydata, color = LegendData)) +
geom_point(size = 7)
gplot
R
# Load Packages
library("ggplot2")
library("grid")
library("gridExtra")
library("cowplot")
# Create a DataFrame
data <- data.frame(
Xdata = rnorm(10), Ydata = rnorm(10),
LegendData = c("ld-01", "ld-02", "ld-03",
"ld-04", "ld-05", "ld-06",
"ld-07", "ld-08", "ld-09",
"ld-10"))
# Create a Scatter Plot
gplot <- ggplot(data, aes(Xdata, Ydata, color = LegendData)) +
geom_point(size = 7)
# Draw Only Legend without plot
# Grab legend from gplot
legend <- get_legend(gplot)
# Create new plot window
grid.newpage()
# Draw Only legend
grid.draw(legend)
输出:
使用的包:
现在,要仅绘制图例而不绘制图例,我们必须加载名为grid 、 gridExtra 的三个包, 和牛图。
- grid包用于直接生成图形输出
句法:
install.packages(“grid”) #For Install grid package
library(“grid”) #For Load grid package
- gridExtra是 grid 包的扩展,它支持图形对象的创建和编辑,但具有比 grid 更高级别的功能。
句法:
install.packages(“gridExtra”) #For Install gridExtra package
library(“gridExtra”) #For Load gridExtra package
- cowplot包用于通过固定其核心组件来增强图形的可呈现性。
句法:
install.packages(“cowplot”) #For Install cowplot package
library(“cowplot”) #For Load cowplot package
使用的功能:
为了仅绘制图例,我们使用了来自上述包的三个函数。
- get_legend()函数用于将图例保存到绘图中。
Syntax : get_legend(ggplot)
Parameter: A ggplot, from which to retrieve the legend
Return : Legend from plot
- grid.newpage() 通过将网格从前一个设备中移除来将网格移动到另一个设备。
Syntax : grid.newpage()
Return : Erases current plot window and create a new plot window
- grid.draw()从图形对象生成图形输出
Syntax : grid.draw(legend)
Return : Draw the legend to new plot window
因此,为了绘制只有图例的图,首先,使用 get_legend() 绘制图例并将其保留在图上,然后使用 grid.newpage() 擦除图,然后将图例绘制到新的图窗口使用 grid.draw()。
例子:
电阻
# Load Packages
library("ggplot2")
library("grid")
library("gridExtra")
library("cowplot")
# Create a DataFrame
data <- data.frame(
Xdata = rnorm(10), Ydata = rnorm(10),
LegendData = c("ld-01", "ld-02", "ld-03",
"ld-04", "ld-05", "ld-06",
"ld-07", "ld-08", "ld-09",
"ld-10"))
# Create a Scatter Plot
gplot <- ggplot(data, aes(Xdata, Ydata, color = LegendData)) +
geom_point(size = 7)
# Draw Only Legend without plot
# Grab legend from gplot
legend <- get_legend(gplot)
# Create new plot window
grid.newpage()
# Draw Only legend
grid.draw(legend)
输出: