Как добавить легенду после обновления точечного графика с помощью команды symbols () в r - PullRequest
0 голосов
/ 07 мая 2018

Я создал пузырьковую диаграмму / точечный график в R, используя следующие данные:

Просмотр my_data_set

и следующий код:

my_data_set <- read.csv("c:/Users/Person/Desktop/my_data_set.csv")

View(my_data_set)

plot(my_data_set$Analysis_Vs_Presentation, my_data_set$Flexibility)

IScolors <- c("#e6f598", "#66c2a5")

TypeLevels <- as.numeric(my_data_set$Type)

symbols(my_data_set$Analysis_Vs_Presentation, my_data_set$Flexibility, circles=sqrt(my_data_set$Easiness), inches=0.8, bg = IScolors[TypeLevels], fg="black", xlab="Presentation", ylab="Flexibility", main="Comparison of 5 Data Analytics Tools", xlim=c(0, 11), ylim=c(0, 11))

text(my_data_set$Analysis_Vs_Presentation, my_data_set$Flexibility, my_data_set$Tool, cex=1)

, который дает мне диаграмму рассеяния пузырьковой диаграммы с пузырьками разного размера в зависимости от значения Easyiness и цветом пузырька в зависимости от значения Type.

pic of my bubble scatter plot chart

Я хочу добавить легенду, чтобы показать, что означает цвет пузыря. Я пытался использовать это:

legend("bottomright", legend=my_data_set$Type, col=IScolors, cex=0.75)

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

Как попросить его отобразить что-то, в котором перечислены 2 различных значения атрибута Type и соответствующий цвет, используемый в диаграмме?

ОБНОВЛЕНИЕ: Крис - после того, как я попробовал ваше предложение, я вижу легенду, но она показывает все 5 значений, а не только 2 различных значения:

скриншот сюжета с добавленной легендой

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

Хорошо, я попытался воссоздать ваш код, чтобы посмотреть, как он может работать. Вот решение - довольно простое, если вы ищете только два цвета для двух типов, верно? Это фактически ваш код; измененный бит следует ниже:

df <- data.frame(
  Tool = c("R", "GGPlot2", "Tableau", "D3", "Excel"),
  Flex = c(6,8,7,10,2),
  Type = c("static", "static", "interactive", "interactive", "static"),
  Easi = c(6,5,10,1,7),
  Ana_v_Pres = c(1,2,5,10,3)
)
View(df)

plot(df$Ana_v_Pres, df$Flex)
IScolors <- c("#e6f598", "#66c2a5")
TypeLevels <- as.numeric(df$Type)
symbols(df$Ana_v_Pres, df$Flex, circles=sqrt(df$Easi), inches=0.8, 
    bg = IScolors[TypeLevels], fg="black", xlab="Presentation", 
    ylab="Flexibility", main="Comparison of 5 Data Analytics Tools", 
    xlim=c(0, 11), ylim=c(0, 11))

text(df$Ana_v_Pres, df$Flex, df$Tool, cex=1)

Теперь об изменениях: просто вы определяете две метки, которые будут отображаться в ключе легенды, и присваиваете ему аргументы col и fill:

legend("bottomright", c("static", "interactive"), col=IScolors, fill=IScolors, cex=0.75)
0 голосов
/ 08 мая 2018

Немного сложно ответить, поскольку вы не предоставляете данные для воспроизведения диаграммы. Но, возможно, вы захотите использовать аргумент fill. Например:

legend("bottomright", legend=my_data_set$Type, fill=IScolors, cex=0.75)
...