2012-02-20 3 views
3

Я пытаюсь прикрепить легенду к сюжету в 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) 

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

При попытке выполнить функцию легенды я получаю

легенда (1.5, 0.5, c («Mon», «Tue», «Wed», «Thu», «Fri»), cex = 0.8, + fill = colors) Ошибка в strwidth (легенда, ед. = «пользователь», cex = cex): plot.new еще не был вызван

ответ

5

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

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

который производит диаграмму ниже:

pie chart

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

1

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

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

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

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

Смежные вопросы