Диаграмма рассеяния ромбов разной высоты и ширины на основе значений в Python или R - PullRequest
0 голосов
/ 08 мая 2020

У меня есть эти 2 списка в Python:

x = [1, 2, 3, 4, 5]
y = [1.5, 1.7, 3.2, 4.1, 4.9]

Мне нужна диаграмма рассеяния y по вертикальной оси и x на горизонтальной оси, и я хочу, чтобы маркеры были ромбами, пропорциональны их размерам.

x_size = [5, 7, 5, 6, 9]
y_size = [10, 9, 11, 13, 12]

Ширина ромба - x_size, а высота ромба - y_size.

Я предпочитаю делать это в Python с помощью Matplotlib или Сиборн, но я хочу сделать это и в R.

Как мне это сделать?

1 Ответ

0 голосов
/ 08 мая 2020

Мне неизвестен стандартный метод в R, позволяющий регулировать высоту и ширину фигуры. Обычно размер контролируется.

Вот несколько способов go хотя:

library(dplyr)
library(ggplot2)

data <- tibble(x = c(1, 2, 3, 4, 5),
               y = c(1.5, 1.7, 3.2, 4.1, 4.9))

p1 <- ggplot(data = data, aes(x = x, y = y)) +
  geom_point(aes(size = y), shape = 18)
p1

p2 <- ggplot(data = data, aes(x = x, y = y)) +
  geom_point(aes(size = x, colour = y), shape = 18)
p2

shapes <- c(15, 16, 17, 18, 19)
p3 <- ggplot(data = data, aes(x = x, y = y, shape = factor(x))) +
  geom_point(aes(size = x, colour = y)) +
  scale_shape_manual(values = shapes)
p3

p1:

enter image description here

p2:

enter image description here

p3:

enter image description here

...