2015-02-26 8 views
5

ggplot2 मैं आर मेंउपयोग

g + scale_x_discrete(breaks=1:7, labels=1:7) 

गलत तरीके से एक साजिश की सीमा में आने वाले बदलाव के उपयोग ggplot2 में असतत पैमाने का उपयोग कर एक समस्या है।

से पहले:

before

के बाद: enter image description here

मैं कुछ भी कोड मैं छवि का निर्माण करने के लिए उपयोग के बारे में संदिग्ध नहीं देख सकते हैं, लेकिन यहाँ यह है:

g <- ggplot(data=plottingData, aes(x=x, y=y, ymin=ymin, ymax=ymax)) + 
geom_bar(stat="identity", fill=col) + 
geom_errorbar(width=0.5*binwidth, size=0.3) 

और परिणामस्वरूप ggplot2 ऑब्जेक्ट का dput() है:

structure(list(data = structure(list(x = c(1, 2, 3, 4, 5, 6, 7), y = c(0.689655172413793, 0.689655172413793, 11.0344827586207, 2.75862068965517, 70.3448275862069, 13.7931034482759, 0.689655172413793), ymin = c(0, 0, 6.84765916431683, 0.870298113507349, 62.426550974053, 9.06894448064895, 0), ymax = c(4.26873021234759, 4.26873021234759, 17.3134146611865, 7.18339316166044, 77.1707644621886, 20.4612568616329, 4.26873021234759)), .Names = c("x", "y", "ymin", "ymax"), row.names = c(NA, -7L), class = "data.frame"), layers = list(<environment>, <environment>),  scales = <S4 object of class structure("Scales", package = "ggplot2")>,  mapping = structure(list(x = x, y = y, ymin = ymin, ymax = ymax), .Names = c("x",  "y", "ymin", "ymax"), class = "uneval"), theme = structure(list(  line = structure(list(colour = "black", size = 0.5, linetype = 1,    lineend = "butt"), .Names = c("colour", "size", "linetype",   "lineend"), class = c("element_line", "element")), rect = structure(list(   fill = "white", colour = "black", size = 0.5, linetype = 1), .Names = c("fill",   "colour", "size", "linetype"), class = c("element_rect",   "element")), text = structure(list(family = "", face = "plain",    colour = "black", size = 12, hjust = 0.5, vjust = 0.5,    angle = 0, lineheight = 0.9), .Names = c("family",   "face", "colour", "size", "hjust", "vjust", "angle",   "lineheight"), class = c("element_text", "element")),   axis.text = structure(list(family = NULL, face = NULL,    colour = NULL, size = structure(0.8, class = "rel"),    hjust = NULL, vjust = NULL, angle = NULL, lineheight = NULL), .Names = c("family",   "face", "colour", "size", "hjust", "vjust", "angle",   "lineheight"), class = c("element_text", "element")),   strip.text = structure(list(family = NULL, face = NULL,    colour = NULL, size = structure(0.8, class = "rel"),    hjust = NULL, vjust = NULL, angle = NULL, lineheight = NULL), .Names = c("family",   "face", "colour", "size", "hjust", "vjust", "angle",   "lineheight"), class = c("element_text", "element")),   axis.line = structure(list(), class = c("element_blank",   "element")), axis.text.x = structure(list(family = NULL,    face = NULL, colour = NULL, size = NULL, hjust = NULL,    vjust = 1, angle = NULL, lineheight = NULL), .Names = c("family",   "face", "colour", "size", "hjust", "vjust", "angle",   "lineheight"), class = c("element_text", "element")),   axis.text.y = structure(list(family = NULL, face = NULL,    colour = NULL, size = NULL, hjust = 1, vjust = NULL,    angle = NULL, lineheight = NULL), .Names = c("family",   "face", "colour", "size", "hjust", "vjust", "angle",   "lineheight"), class = c("element_text", "element")),   axis.ticks = structure(list(colour = "black", size = NULL,    linetype = NULL, lineend = NULL), .Names = c("colour",   "size", "linetype", "lineend"), class = c("element_line",   "element")), axis.title.x = structure(list(family = NULL,    face = NULL, colour = NULL, size = NULL, hjust = NULL,    vjust = NULL, angle = NULL, lineheight = NULL), .Names = c("family",   "face", "colour", "size", "hjust", "vjust", "angle",   "lineheight"), class = c("element_text", "element")),   axis.title.y = structure(list(family = NULL, face = NULL,    colour = NULL, size = NULL, hjust = NULL, vjust = NULL,    angle = 90, lineheight = NULL), .Names = c("family",   "face", "colour", "size", "hjust", "vjust", "angle",   "lineheight"), class = c("element_text", "element")),   axis.ticks.length = structure(0.15, unit = "cm", valid.unit = 1L, class = "unit"),   axis.ticks.margin = structure(0.1, unit = "cm", valid.unit = 1L, class = "unit"),   legend.background = structure(list(fill = NULL, colour = NA,    size = NULL, linetype = NULL), .Names = c("fill",   "colour", "size", "linetype"), class = c("element_rect",   "element")), legend.margin = structure(0.2, unit = "cm", valid.unit = 1L, class = "unit"),   legend.key = structure(list(fill = NULL, colour = "grey80",    size = NULL, linetype = NULL), .Names = c("fill",   "colour", "size", "linetype"), class = c("element_rect",   "element")), legend.key.size = structure(1.2, unit = "lines", valid.unit = 3L, class = "unit"),   legend.key.height = NULL, legend.key.width = NULL, legend.text = structure(list(   family = NULL, face = NULL, colour = NULL, size = structure(0.8, class = "rel"),    hjust = NULL, vjust = NULL, angle = NULL, lineheight = NULL), .Names = c("family",   "face", "colour", "size", "hjust", "vjust", "angle",   "lineheight"), class = c("element_text", "element")),   legend.text.align = NULL, legend.title = structure(list(   family = NULL, face = "bold", colour = NULL, size = structure(0.8, class = "rel"),    hjust = 0, vjust = NULL, angle = NULL, lineheight = NULL), .Names = c("family",   "face", "colour", "size", "hjust", "vjust", "angle",   "lineheight"), class = c("element_text", "element")),   legend.title.align = NULL, legend.position = "right",   legend.direction = NULL, legend.justification = "center",   legend.box = NULL, panel.background = structure(list(   fill = "white", colour = NA, size = NULL, linetype = NULL), .Names = c("fill",   "colour", "size", "linetype"), class = c("element_rect",   "element")), panel.border = structure(list(fill = NA,    colour = "grey50", size = NULL, linetype = NULL), .Names = c("fill",   "colour", "size", "linetype"), class = c("element_rect",   "element")), panel.grid.major = structure(list(colour = "grey90",    size = 0.2, linetype = NULL, lineend = NULL), .Names = c("colour",   "size", "linetype", "lineend"), class = c("element_line",   "element")), panel.grid.minor = structure(list(colour = "grey98",    size = 0.5, linetype = NULL, lineend = NULL), .Names = c("colour",   "size", "linetype", "lineend"), class = c("element_line",   "element")), panel.margin = structure(0.25, unit = "lines", valid.unit = 3L, class = "unit"),   panel.margin.x = NULL, panel.margin.y = NULL, strip.background = structure(list(   fill = "grey80", colour = "grey50", size = 0.2, linetype = NULL), .Names = c("fill",   "colour", "size", "linetype"), class = c("element_rect",   "element")), strip.text.x = structure(list(family = NULL,    face = NULL, colour = NULL, size = NULL, hjust = NULL,    vjust = NULL, angle = NULL, lineheight = NULL), .Names = c("family",   "face", "colour", "size", "hjust", "vjust", "angle",   "lineheight"), class = c("element_text", "element")),   strip.text.y = structure(list(family = NULL, face = NULL,    colour = NULL, size = NULL, hjust = NULL, vjust = NULL,    angle = -90, lineheight = NULL), .Names = c("family",   "face", "colour", "size", "hjust", "vjust", "angle",   "lineheight"), class = c("element_text", "element")),   plot.background = structure(list(fill = NULL, colour = "white",    size = NULL, linetype = NULL), .Names = c("fill",   "colour", "size", "linetype"), class = c("element_rect",   "element")), plot.title = structure(list(family = NULL,    face = NULL, colour = NULL, size = structure(1.2, class = "rel"),    hjust = NULL, vjust = NULL, angle = NULL, lineheight = NULL), .Names = c("family",   "face", "colour", "size", "hjust", "vjust", "angle",   "lineheight"), class = c("element_text", "element")),   plot.margin = structure(c(1, 1, 0.5, 0.5), unit = "lines", valid.unit = 3L, class = "unit")), .Names = c("line",  "rect", "text", "axis.text", "strip.text", "axis.line", "axis.text.x",  "axis.text.y", "axis.ticks", "axis.title.x", "axis.title.y",  "axis.ticks.length", "axis.ticks.margin", "legend.background",  "legend.margin", "legend.key", "legend.key.size", "legend.key.height",  "legend.key.width", "legend.text", "legend.text.align", "legend.title",  "legend.title.align", "legend.position", "legend.direction",  "legend.justification", "legend.box", "panel.background",  "panel.border", "panel.grid.major", "panel.grid.minor", "panel.margin",  "panel.margin.x", "panel.margin.y", "strip.background", "strip.text.x",  "strip.text.y", "plot.background", "plot.title", "plot.margin" ), class = c("theme", "gg"), complete = TRUE), coordinates = structure(list(  limits = structure(list(x = NULL, y = NULL), .Names = c("x",   "y"))), .Names = "limits", class = c("cartesian", "coord" )), facet = structure(list(shrink = TRUE), .Names = "shrink", class = c("null",  "facet")), plot_env = <environment>, labels = structure(list(  x = "x", y = "y", ymin = "ymin", ymax = "ymax"), .Names = c("x",  "y", "ymin", "ymax"))), .Names = c("data", "layers", "scales", "mapping", "theme", "coordinates", "facet", "plot_env", "labels"), class = c("gg", "ggplot")) 

विशेष रूप से, विस्तार पैरामीटर केवल समायोजित कर देता है भूखंडों थोड़ा और expand=c(0,0) समस्या का समाधान नहीं है। सीमा निर्दिष्ट करना समस्या को हल करता है, लेकिन कुछ कारणों से धुरी लेबल को भी हटा देता है।

किसी भी मदद की सराहना की जाएगी।

+2

क्या आप फिर से 'dput' अपलोड कर सकते हैं? मुझे त्रुटि संदेश मिल रहे हैं। ऐसा लगता है कि आपको एक ggplot ऑब्जेक्ट के लिए डंप मिला है। क्या आप अपने डेटा का डुबकी अपलोड कर सकते हैं? – jazzurro

+0

@jazzurro: हाँ, यह ggplot2 ऑब्जेक्ट है - मैंने सोचा था कि प्लॉटिंगडेटा (जिसमें वास्तव में कुछ अप्रासंगिक सामग्री शामिल है) के साथ-साथ कॉल और बिनविड्थ देने के बजाय काम करना आसान था। नीचे छाया के जवाब ने मेरे लिए समस्या हल की। –

उत्तर

9

शायद यह पहले से ही होता है जब आप g + scale_x_discrete() जोड़ते हैं। यह तब होता है जब निरंतर डेटा के लिए एक अलग पैमाने का उपयोग किया जाता है। ब्रेक के बिना, आप गलत सीमाएं देख सकते हैं और बस उन्हें बदल सकते हैं।

g + scale_x_discrete() 
g + scale_x_discrete(limits=1:7) 
g + scale_x_discrete(limits=1:7, labels = letters[1:7]) 

वैकल्पिक रूप से, आप factor का उपयोग शुरू से ही उचित सीमा प्राप्त करने के लिए कर सकते हैं। बेशक आपको धुरी का नाम बदलना होगा।

ggplot(data=plottingData, aes(x=factor(x), y=y, ymin=ymin, ymax=ymax)) + 
    geom_bar(stat="identity", fill=col) + 
    geom_errorbar(width=0.5*binwidth, size=0.3) + 
    scale_x_discrete(name = 'x')