r - Ggplot2 के साथ प्लॉटिंग: "त्रुटि: स्पष्ट पैमाने पर निरंतर पैमाने पर आपूर्ति की गई मूल्य"




scale categorical-data (2)

नीचे दिया गया प्लॉटिंग कोड Error: Discrete value supplied to continuous scale देता है Error: Discrete value supplied to continuous scale

इस कोड में क्या गलत है? यह ठीक काम करता है जब तक कि मैं पैमाने को बदलने की कोशिश नहीं करता हूं, इसलिए त्रुटि है ... मैंने इसी तरह की समस्या से समाधान निकालने की कोशिश की, लेकिन नहीं कर सका।

यह मेरे डेटा का एक head है:

> dput(head(df))
structure(list(`10` = c(0, 0, 0, 0, 0, 0), `33.95` = c(0, 0, 
0, 0, 0, 0), `58.66` = c(0, 0, 0, 0, 0, 0), `84.42` = c(0, 0, 
0, 0, 0, 0), `110.21` = c(0, 0, 0, 0, 0, 0), `134.16` = c(0, 
0, 0, 0, 0, 0), `164.69` = c(0, 0, 0, 0, 0, 0), `199.1` = c(0, 
0, 0, 0, 0, 0), `234.35` = c(0, 0, 0, 0, 0, 0), `257.19` = c(0, 
0, 0, 0, 0, 0), `361.84` = c(0, 0, 0, 0, 0, 0), `432.74` = c(0, 
0, 0, 0, 0, 0), `506.34` = c(1, 0, 0, 0, 0, 0), `581.46` = c(0, 
0, 0, 0, 0, 0), `651.71` = c(0, 0, 0, 0, 0, 0), `732.59` = c(0, 
0, 0, 0, 0, 1), `817.56` = c(0, 0, 0, 1, 0, 0), `896.24` = c(0, 
0, 0, 0, 0, 0), `971.77` = c(0, 1, 1, 1, 0, 1), `1038.91` = c(0, 
0, 0, 0, 0, 0), MW = c(3.9, 6.4, 7.4, 8.1, 9, 9.4)), .Names = c("10", 
"33.95", "58.66", "84.42", "110.21", "134.16", "164.69", "199.1", 
"234.35", "257.19", "361.84", "432.74", "506.34", "581.46", "651.71", 
"732.59", "817.56", "896.24", "971.77", "1038.91", "MW"), row.names = c("Merc", 
"Peug", "Fera", "Fiat", "Opel", "Volv"
), class = "data.frame")

प्लॉटिंग कोड:

## Plotting
meltDF = melt(df, id.vars = 'MW')
ggplot(meltDF[meltDF$value == 1,]) + geom_point(aes(x = MW, y = variable)) +
  scale_x_continuous(limits=c(0, 1200), breaks=c(0, 400, 800, 1200)) +
  scale_y_continuous(limits=c(0, 1200), breaks=c(0, 400, 800, 1200))

यहां बताया गया है कि प्लॉट को जोड़ने से पहले कैसे देखा जाता है:


जैसा कि टिप्पणियों में उल्लेख किया गया है, factor प्रकार के चर पर एक निरंतर पैमाना नहीं हो सकता है । आप meltDF वैरिएबल को परिभाषित करने के बाद factor निम्नानुसार numeric रूप में बदल सकते हैं।

meltDF$variable=as.numeric(levels(meltDF$variable))[meltDF$variable]

फिर, ggplot कमांड निष्पादित करें

  ggplot(meltDF[meltDF$value == 1,]) + geom_point(aes(x = MW, y =   variable)) +
     scale_x_continuous(limits=c(0, 1200), breaks=c(0, 400, 800, 1200)) +
     scale_y_continuous(limits=c(0, 1200), breaks=c(0, 400, 800, 1200))

और आपके पास आपका चार्ट होगा।

उम्मीद है की यह मदद करेगा


मेरे मामले में, आपको कॉलम को बदलने की आवश्यकता है (आपको लगता है कि यह कॉलम संख्यात्मक है, लेकिन वास्तव में नहीं) numeric

geom_segment(data=tmpp, 
   aes(x=start_pos, 
   y=lib.complexity, 
   xend=end_pos, 
   yend=lib.complexity)
)
# to 
geom_segment(data=tmpp, 
   aes(x=as.numeric(start_pos), 
   y=as.numeric(lib.complexity), 
   xend=as.numeric(end_pos), 
   yend=as.numeric(lib.complexity))
)




r-factor