📜  在R中绘制没有绘图的ggplot2图例

📅  最后修改于: 2022-05-13 01:55:24.463000             🧑  作者: Mango

在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)


输出:



散点图与图例

散点图与图例

使用的包:

现在,要仅绘制图例而不绘制图例,我们必须加载名为gridgridExtra 的三个包, 牛图

  • grid包用于直接生成图形输出

句法:

  • gridExtra是 grid 包的扩展,它支持图形对象的创建和编辑,但具有比 grid 更高级别的功能。

句法:

  • cowplot包用于通过固定其核心组件来增强图形的可呈现性。

句法:



使用的功能:

为了仅绘制图例,我们使用了来自上述包的三个函数。

  • get_legend()函数用于将图例保存到绘图中。
  • grid.newpage() 通过将网格从前一个设备中移除来将网格移动到另一个设备。
  • grid.draw()从图形对象生成图形输出

因此,为了绘制只有图例的图,首先,使用 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) 

输出:

只有传说没有情节

只有传说没有情节