Monday 15 August 2011

r - Vertical gridlines in ggplot with discrete x-axis -


मेरे पास निम्न सेटअप है:

  emp & lt; - संरचना (सूची = संरचना (सी (1 एल, 2 एल, 2 एल, 2 एल, 7 एल, 7 एल, 3 एल, 4 एल, 4 एल, 4 एल, 4 एल, 8 एल, 8 एल, 8 एल, 9 एल, 9 एल, 9 एल, 9 एल, 10 एल, 5 एल, 5 एल, 6 एल) लेबल = सी ("8", "24", "31", "78", "135", "142", "30", "98", "117", "123"), वर्ग = "कारक" , स्कोर = संरचना (सी (1, 2, 14, 3, 5, 17, 18, 20, 11, 13), डीआईएम = 10 एल, .Dimnames = सूची (सी ("8", "24", "30 "31", "78", "98", "117", "123", "135", "142")))), टी = संरचना (सी (6 एल, 1 एल, 2 एल, 4 एल, 7 एल, 9 एल, 3 एल, 1 एल, 2 एल, 4 एल, 5 एल, 8 एल, 9 एल, 10 एल, 7 एल, 8 एल, 9 एल, 11 एल, 9 एल, 1 एल, 4 एल, 1 एल), .लाबल = सी ("8", "24", "40 "," 78 "," 135 "," 142 "," 30 "," 98 "," 117 "," 119 "," 123 "), वर्ग =" कारक ", स्कोर = संरचना (सी (1, 2) , 14, 4, 5, 17, 18, 1 9, 20, 11, 13), डीआईएम = 11 एल, .Dimnames = सूची (सी ("8", "24", "30", "40", "78 V1 = c (3L, 1L, 9L, 4L, 1L, 107L, 2L, 5L, 1, 9, 4L, 1 9, 2, 5L, 3 एल, 1 एल, 2 एल, 1 एल, 6 एल, 14 एल, 20 एल, 1 एल, 4 एल, 1 एल, 2 एल, 3 एल, 2 एल, 2 एल))। नाम = सी ("एस", "टी", "वी 1"), पंक्ति नाम = सी (एन ए, -22 एल), वर्ग = "डेटा.फ्रेम" ओ एंड एलटी; - सी (8 एल, 24 एल, 31 एल, 40 एल, 78 एल, 80 एल, 85 एल, 94 एल, 104 एल, 113 एल, 135 एल, 136 एल, 142 एल, 30 एल, 54 एल, 91 एल, 98 एल, 117 एल, 119 एल, 123 एल, 9 एल, 34 एल, 97 एल, 126 एल, 140 एल, 13 एल, 75 एल, 92 एल, 134 एल, 138 एल, 141 एल, 6 एल, 12 एल, 22 एल, 44 एल, 48 एल, 51 एल, 57 एल, 64 एल, 84 एल, 88 एल, 93 एल, 100 एल, 115 एल, 124 एल, 12 9 एल, 132 एल, 143 एल, 144 एल, 2 एल, 10 एल, 14 एल, 15 एल, 16 एल, 17 एल, 1 9 एल, 35 एल, 3 9 एल, 41 एल, 50 एल, 52 एल, 53 एल, 58 एल, 61 एल, 66L, 67L, 68L, 71L, 72L, 73L, 76L, 96L, 99L, 101L, 106L, 109L, 114L, 121L, 127L, 128L, 131L, 137L, 145L, 146L, 148L, 150L, ​​4L, 18L, 23L, 28 एल, 29 एल, 32 एल, 37 एल, 38 एल, 65 एल, 82 एल, 90 एल, 102 एल, 105 एल, 107 एल, 111 एल, 122 एल, 130 एल, 133 एल, 13 9 एल, 147 एल, 3 एल, 5 एल, 7 एल, 11 एल, 21 एल, 27 एल, 33 एल, 43 एल, 45 एल, 46 एल, 47 एल, 49 एल, 55 एल, 56 एल, 59 एल, 60 एल, 62 एल, 63 एल, 69 एल, 70 एल, 77 एल, 83 एल, 87 एल, 89 एल, 103 एल, 108 एल, 112 एल, 116 एल, 118 एल, 120 एल, 125 एल, 14 9 एल, 151 एल, 1L, 20L, 25L, 26L, 36L, 42L, 74L, 81L, 86L, ​​95L, 110L) emp $ s & lt; - पुनर्क्रमित (कारक (emp $ s), मैच (emp $ s, o)) emp $ t & lt Qq & lt; -ggplot (emp, aes (x = s, y = t)) qq + geom_tile (एईएस (भरें) = लॉग (वी 1))) + थीम_बॉ () + scale_fill_gradient (कम = "सफेद", उच्च = "काला") + opts (axis.text.x = theme_text (कोण = -90, hjust = 0, आकार = 5) , Axis.text.y = theme_text (वज़ = = 0, आकार = 5), पैनल.ग्रीड.मिंर = थीम_ब्नल (), पैनल.ग्रीड.मुख्य = थीम_ब्नल ())  

यह निम्नलिखित का उत्पादन करता है:

मैं सिर्फ 142 के बाद और 30 से पहले एक अनुलंब रेखा को शामिल करना चाहूंगा। (ध्यान दें, मुझे इन मानों को एक कारक के रूप में रखना होगा।) मैंने दो विकल्प पर विचार किया जा रहा है:

  • vline: मैं केवल पंक्ति को 142 और 30 पर डाल सकता हूं, लेकिन उनके बीच नहीं।
  • ग्रिड सामग्री: मुझे ऐसा लगता है आदर्श समाधान एक ग्रिड प्रमुख या कुछ को पेश करना है।

कोई भी विचार?

मुझे यकीन नहीं है कि यह वही है जो तुम्हारा मतलब है:

  p & lt; - ggplot (emp, aes (x = s, y = t)) + geom_tile (aes (Fill = log (v1))) + theme_bw () + scale_fill_gradient (कम = "सफेद", उच्च = "काला") + थीम (axis.text.x = element_text (कोण = -90, अत्याधिक = 0, आकार = 5), अक्ष। Text.y = element_text (vjust = 0, आकार = 5), panel.grid.minor = element_blank (), panel.grid.major = element_blank ()) + geom_vline (xintercept = जो कि% c ("142", "30") में (स्तर (emp $ s)%) + c (0.25, -0.25)) प्रिंट (पी)  

ggplot2 आउटपुट


No comments:

Post a Comment