График данных в соответствии с именами строк с различными символами и значениями - PullRequest
1 голос
/ 22 сентября 2019
a=c(1,2,3,10,30)
b=c(2.5,5,5.5,7,24)
c=c(0,0,5,0,32)

abc=cbind(a,b,c)
rownames(abc)=c("apple","orange","pears","watermelon","mango")

Цели:

Я хотел бы отобразить эти данные на одном графике: данные (a) в виде линии, данные (b) в виде символа точек и данные (c) в видесимвол прямоугольников с именами строк в виде x-asix.

У меня есть проблема:

  • построение всего на одном графике с различными функциями
  • построение в соответствии с фруктами 'имена
  • в каждом наборе данных есть одно значение, которое очень большое (выброс), что делает график очень широким, а точки маленькими.

Ответы [ 2 ]

0 голосов
/ 22 сентября 2019

Чтобы использовать классическую графику, используйте matplot (другая альтернатива классической графики предоставляется после графика) и укажите линию (l), точки (p) и точки (p) для типа иобозначенные символы (NA == нет, 20 - точка, 15 - прямоугольник) и опустите ось X, чтобы в следующем операторе axis можно было указать имена строк.Наконец добавьте легенду.Пакеты не используются.[продолжение после сюжета]

matplot(abc, type = c("l", "p", "p"), pch = c(NA, 20, 15), xaxt = "n")
axis(1, 1:nrow(abc), rownames(abc))
legend("topleft", colnames(abc), lty = c(1, 0, 0), pch = c(NA, 20, 15), col = 1:3)

screenshot

Это также сработает и даст тот же сюжет.

plot(abc[, "a"], xlab = "", ylab = "abc", type = "l", xaxt = "n", 
  ylim = c(0, max(abc)))
points(abc[, "b"], pch = 20, col = 2)
points(abc[, "c"], pch = 15, col = 3)
axis(1, 1:nrow(abc), rownames(abc))
legend("topleft", colnames(abc), lty = c(1, 0, 0), pch = c(NA, 20, 15), col = 1:3)
0 голосов
/ 22 сентября 2019

Опция будет matplot

matplot(t(abc), type = 'l')
legend("top", row.names(abc), col = seq_len(nrow(abc)), fill = seq_len(nrow(abc)))

plot

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...