当前位置: 首页 > 知识库问答 >
问题:

未指定美学时,使用geom_sf绘制图例

洪景铄
2023-03-14

使用 ggplot/geom_sf 绘制地图时,映射到美学的任何图层都将在图例中表示。我还知道,使用 show.legend = ... 可用于强制图例表示和操作使用的符号系统(点、线、面)。但是,当绘制简单对象而无需进一步将它们映射到美学时,即使用颜色/填充来显示附加信息时,不会给出图例条目。使用 show.legend = TRUE 时似乎也是如此。我在GitHub上发现了这个问题:https://github.com/tidyverse/ggplot2/issues/3636。我不太确定,问的人是不是说不对,但似乎没有一个好的答案。因此,使用他的代码:

library(ggplot2)
library(sf)

nc <- st_read(system.file("shape/nc.shp", package = "sf"))
ggplot(nc) + geom_sf(show.legend = TRUE)

未能产生一个传奇。我希望图例只显示一条与地图相同颜色的线,并为该图层命名。我可以使用以下方法添加图例:

ggplot() +
  geom_sf(aes(fill = "US State borders"), nc, show.legend = "line")

但是,这现在会更改打印图层的颜色。好的,让我们尝试指定一种颜色:

ggplot() +
  geom_sf(aes(fill = "US State borders"), nc, fill = "grey", show.legend = "line")

哎呀,又丢了传说,可能是因为我现在已经指定了两次填充。使用 ggplot/geom_sf 真的不可能吗?

共有1个答案

狄海
2023-03-14

如果我正确理解问题,它应该工作,如果你指定填充颜色scale_fill_manual()

  ggplot() +
    geom_sf(aes(fill = "US State borders"), nc, show.legend = "line") +
    scale_fill_manual(values = 'grey') +
    labs(fill = '') # removing legend title
 类似资料:
  • 数据源是具有PostGIS几何类型的PostgreSQL数据库。我可以使用包直接从SQL查询我想要的数据到data.frame。 由于 R 抱怨原始几何类型,因此我在 SQL 查询中对几何使用 以便将它们作为类型存储在 中。我有三种类型:、和。请注意,我的数据是几何(例如,笛卡尔x,y,z坐标),而不是地图投影的地理。 制作MWE有点困难,因为我必须用换行符分隔每个LINESTRING和POLYG

  • Drawing attractive figures is important. When making figures for yourself, as you explore a dataset, it’s nice to have plots that are pleasant to look at. Visualizations are also central to communicat

  • 安装方法 pip install matplotlib 绘制一元函数图像y=ax+b 创建single_variable.py,内容如下: # coding:utf-8 import sys reload(sys) sys.setdefaultencoding( "utf-8" ) import matplotlib.pyplot as plt import numpy as np plt.f

  • 我正在尝试使用 中的 和 制作地图,其中一组点数据使用连续比例(-1 到 1)着色,一组线数据使用离散比例(a,b,c,d)着色。但是,当我在同一张地图中同时使用离散和连续美学时,我遇到了麻烦。这里发布了一个类似的问题,但它没有涉及映射美学。 下面是一个简化的示例: 很明显,连续(点数据)和离散(线数据)美学之间存在冲突,但我如何每次调用为每个数据集使用不同的颜色美学?使用<code>inheri

  • 我试着用plotly绘制一个gannt图。重要的是,水平泳道可以有多个横杆在时间上分开。 我发现了一个使用日历日期(YYYY-MM-DD)的例子,并尝试使用时间(HH:MM:SS)进行转换。但是当我使用时间戳时,所有的东西都聚集在一起,没有间隙。

  • 我的问题结合了之前在Stackoverflow上发布的两个独立问题:I .为ggplot添加多个图例;ii .将线条图例添加到geom_sf。 我想在中添加多个图例(如第一篇文章中所述),但我使用了。这使得填充美学空间变得复杂。上面i.中建议的答案不适用于多种类型的几何图形——我们不能将点和线分配给单个类,然后使用因子。在我的例子中,我有几个线和点shapefile,只是想为添加的每个shapef