Вставить изображение /PNG ggplot2 - Cowplot

Я пытаюсь использовать пакет cowplot draw_image() функция. Мне удалось получить изображение на графике в качестве примера.

Я не могу понять, как работают координаты xy, мне приходилось вводить случайные числа, пока я не увидел изображение.

require(ggplot2) #required packages
require(cowplot)
require(magick)

p1 <- qplot(Sepal.Length, Sepal.Width, data = iris)

ggdraw(p1) +      
  draw_image(
    "https://upload.wikimedia.org/wikipedia/en/7/77/EricCartman.png",
    y = 0.2,
    scale = 0.5
  )

Кто-нибудь может посоветовать, в каком масштабе они функционируют? Похоже, это не тот же масштаб, что и на графике.

1 ответ

Решение

Это в координатах сюжета. Дело, которое может сбить вас с толку, заключается в том, что ggdraw() устанавливает новую систему координат, работающую от 0 до 1 как по x, так и по y. Если вы хотите нарисовать изображение в координатах графика, вам не нужно использовать ggdraw(), Просто добавь draw_plot() прямо на сюжет.

library(ggplot2)
library(cowplot)
theme_set(theme_bw())

p1 <- qplot(Sepal.Length, Sepal.Width, data = iris)

# ggdraw() sets up a new coordinate system running from 0 to 1. This
# allows you to place an image on top of the plot.
ggdraw(p1) + 
  draw_image("https://upload.wikimedia.org/wikipedia/en/7/77/EricCartman.png")

# if you want to draw the image into the plot, don't use ggdraw()
p1 + draw_image(
  "https://upload.wikimedia.org/wikipedia/en/7/77/EricCartman.png",
  x = 5, y = 2.5, width = 2, height = 1.5
)

Создано в 2018-12-19 пакетом представительства (v0.2.1)

Другие вопросы по тегам