سؤال

استخدام ggplot2 أنا عادة استخدام geom_text وشيء مثل position=jitter لتعليق قطع بلدي.

ومع ذلك - للحصول على مؤامرة لطيفة، غالبا ما أجد أنه من المفيد التعليق يدويا. مثل أدناه:

data2 <- structure(list(type = structure(c(5L, 1L, 2L, 4L, 3L, 5L, 1L, 
2L, 4L, 3L, 5L, 1L, 2L, 4L, 3L, 5L, 1L, 2L, 4L, 3L), .Label = c("EDS", 
"KIU", "LAK", "MVH", "NA*"), class = "factor"), value = c(0.9, 
0.01, 0.01, 0.09, 0, 0.8, 0.05, 0, 0.15, 0, 0.41, 0.04, 0.03, 
0.52, 0, 0.23, 0.11, 0.02, 0.64, 0.01), time = c(3L, 3L, 3L, 
3L, 3L, 6L, 6L, 6L, 6L, 6L, 15L, 15L, 15L, 15L, 15L, 27L, 27L, 
27L, 27L, 27L), year = c(2008L, 2008L, 2008L, 2008L, 2008L, 2007L, 
2007L, 2007L, 2007L, 2007L, 2007L, 2007L, 2007L, 2007L, 2007L, 
2006L, 2006L, 2006L, 2006L, 2006L)), .Names = c("type", "value", 
"time", "year"), row.names = c(1L, 3L, 4L, 5L, 6L, 7L, 9L, 10L, 
11L, 12L, 13L, 15L, 16L, 17L, 18L, 19L, 21L, 22L, 23L, 24L), class = "data.frame")
ggplot(data2, aes(x=time, y=value, group=type, col=type))+
geom_line()+
geom_point()+
theme_bw()+
annotate("text", x=6, y=0.9, label="this is a wrong color")+
annotate("text", x=15, y=0.6, label="this is a second annotation with a wrong color")

المشكلة هي أنه لا يمكنني الحصول على لون التعليقات التوضيحية للنص لمطابقة لون الخط. أفترض أنني أستطيع إصلاح هذا بمقياس يدوي، ولكن آمل أن تكون هناك طريقة أفضل؟

هل كانت مفيدة؟

المحلول

إذا كنت تستخدم GEOM_TEXT () بدلا من Annotate () يمكنك تمرير لون مجموعة إلى مؤامرة:

ggplot(data2, aes(x=time, y=value, group=type, col=type))+
geom_line()+
geom_point()+
theme_bw() +
geom_text(aes(7, .9, label="correct color", color="NA*")) +
geom_text(aes(15, .6, label="another correct color!", color="MVH")) 

لذلك باستخدام Annotate () يبدو وكأنه هذا:نص ALT http://www.cerebralmastication.com/wp-content/uploads/2015/03/before.png.

ثم بعد استخدام GEOM_TEXT () يبدو الأمر كذلك:النص البديل http://www.cerebralmastication.com/wp-content/uploads حتى 2007/after.png.

نصائح أخرى

كان لدي مشكلة مماثلة وحلها مع إجابة مدهونة طويلة. ولكن كنتائج ggplot2 تحديث إلى الإصدار 0.9.0 لاحظت أن الكل geom_text()المكالمات المقدمة غير واضحة إلى حد ما على المؤامرات.

بفضل كوهسكي اكتشفت أن هذا الرمز

ggplot(data2, aes(x=time, y=value, group=type, col=type))+
geom_line()+
geom_point()+
theme_bw() +
geom_text(aes(7, .9, label="correct color", color="NA*")) +
geom_text(aes(15, .6, label="another correct color!", color="MVH")) 

المؤامرات GEOM_TEXT. nrow(data2)مرات

الطريقة الصحيحة لتزويد البيانات إلى GEOM_TEXT هي بناء بيانات مختلفة. الإطار القابضة الإحداثيات والملصقات والألوان الخاصة بالسلاسل التي تريد تخطيطها:

data2.labels <- data.frame(
  time = c(7, 15), 
  value = c(.9, .6), 
  label = c("correct color", "another correct color!"), 
  type = c("NA*", "MVH")
  )

ggplot(data2, aes(x=time, y=value, group=type, col=type))+
  geom_line()+
  geom_point()+
  theme_bw() +
  geom_text(data = data2.labels, aes(x = time, y = value, label = label))
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top