Как совместить сюжет и легенду? - PullRequest
3 голосов
/ 20 февраля 2012

Я пытаюсь прикрепить легенду к сюжету в R. Я попробовал следующий код (взятый из http://www.harding.edu/fmccown/r/)

# Define cars vector with 5 values
cars <- c(1, 3, 6, 4, 9)

# Define some colors ideal for black & white print
colors <- c("white","grey70","grey90","grey50","black")

# Calculate the percentage for each day, rounded to one 
# decimal place
car_labels <- round(cars/sum(cars) * 100, 1)

# Concatenate a '%' char after each value
car_labels <- paste(car_labels, "%", sep="")

# Create a pie chart with defined heading and custom colors
# and labels
pie(cars, main="Cars", col=colors, labels=car_labels,
   cex=0.8)

# Create a legend at the right   
legend(1.5, 0.5, c("Mon","Tue","Wed","Thu","Fri"), cex=0.8, 
   fill=colors)

Однако это не очень хорошо работает.После линии (cars, main = "Cars", col = colors, label = car_labels, cex = 0.8) , сюжет отображается без легенды :-) ....... КаждыйПример, который я вижу в Интернете, похоже, имеет функцию legend после функции построения графика, поэтому она кажется очень странной ..............

Когда я пытаюсьчтобы выполнить функцию легенды, я получаю

легенду (1,5, 0,5, с («пн», «вт», «ср», «чт», «пт»), cex = 0,8, +fill = colors) Ошибка в strwidth (легенда, единицы = "пользователь", cex = cex): plot.new еще не был вызван

Ответы [ 2 ]

5 голосов
/ 20 февраля 2012

Вы находитесь вне системы координат.Попробуйте вместо этого

# Create a legend at the right   
legend("topleft", c("Mon","Tue","Wed","Thu","Fri"), cex=0.8, fill=colors)

, что приводит к приведенной ниже диаграмме:

pie chart

См. Страницу справки для legend для различных вариантов размещения.

1 голос
/ 20 февраля 2012

Я думаю, что позиция 1.5, 0.5 убирает это со страницы. Попробуйте

legend("right", c("Mon","Tue","Wed","Thu","Fri"), cex=0.8, fill=colors)

После функции pie появляется без легенды; функция legend добавляет легенду к текущему сюжету.

PS. Вы можете также рассмотреть другие типы участков. Круговые диаграммы печально известны тем, что визуально вводят в заблуждение.

...