ggplot2:" geom_point需要以下缺失的美学:x,y"

时间:2018-01-07 16:38:15

标签: r ggplot2

我遇到的问题是我无法指定行符号的形状(没有此规范,代码工作正常):

在可重现格式的数据下面(它是放入数据框的效果数据):

structure(list(varL = c(0, 1e+07, 2e+07, 3e+07, 4e+07, 
0, 1e+07, 2e+07, 3e+07, 4e+07, 0, 1e+07, 2e+07, 3e+07, 4e+07, 
0, 1e+07, 2e+07, 3e+07, 4e+07, 0, 1e+07, 2e+07, 3e+07, 4e+07, 
0, 1e+07, 2e+07, 3e+07, 4e+07, 0, 1e+07, 2e+07, 3e+07, 4e+07, 
0, 1e+07, 2e+07, 3e+07, 4e+07), varP = structure(c(1L, 
1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 
4L, 4L, 4L, 5L, 5L, 5L, 5L, 5L, 6L, 6L, 6L, 6L, 6L, 7L, 7L, 7L, 
7L, 7L, 8L, 8L, 8L, 8L, 8L), .Label = c("(0,0.1]", "(0.1,0.2]", 
"(0.2,0.3]", "(0.3,0.4]", "(0.4,0.5]", "(0.5,0.6]", "(0.6,0.7]", 
"(0.7,0.8]", NA), class = "factor"), fit = c(0.0496509727291671, 
0.0889644199210129, 0.147763911240627, 0.228140612498209, 0.328558663864939, 
0.0137066329240178, 0.0170188110490053, 0.0209924787528359, 0.0257246732663005, 
0.0313187292462082, 0.0289376730565942, 0.0324367840687503, 0.036277818691311, 
0.0404834466212193, 0.0450765434401318, 0.0377500587733006, 0.0506605267612627, 
0.0668653640284829, 0.0868169793966305, 0.110912824327041, 0.0461062991171287, 
0.0536136421990573, 0.0620580975149222, 0.071506100162885, 0.0820206662867591, 
0.0271688764980807, 0.0310122602430318, 0.0352949603875076, 0.0400511628245002, 
0.0453154762467586, 0.0593111130006543, 0.0777425439930874, 0.100226912943776, 
0.127122712337706, 0.158670602546708, 0.02092268966042, 0.0481738946672621, 
0.0984225581163725, 0.179214944179607, 0.292488347088707), se = c(0.0259513690928884, 
0.0478802966619357, 0.0959400030912549, 0.146319368888539, 0.197248937550513, 
0.033511891943933, 0.0649738808934063, 0.13283528902344, 0.203454843482363, 
0.274713638499851, 0.0399137666412373, 0.0836182332502119, 0.170994872374127, 
0.261409298049175, 0.352531889503407, 0.0128068165036135, 0.0265824058594164, 
0.054035051049317, 0.0824833429902055, 0.111165505837411, 0.00821998219695643, 
0.0204628357910751, 0.0416140898624852, 0.0632975717285407, 0.08510744963605, 
0.0111710559049469, 0.0241847618850518, 0.0491238092261353, 0.0748967974373985, 
0.100866484066391, 0.0158269724358688, 0.0376131484048352, 0.0769417704226139, 
0.117330108518709, 0.157967414110193, 0.041410334660995, 0.0756439112597116, 
0.154046905957391, 0.236093539915582, 0.318984533128398), lower = c(0.0446491361632188, 
0.0747918828643712, 0.108580794230823, 0.151091116521613, 0.203128798877193, 
0.0115654911703096, 0.0123209025069961, 0.0108946289492482, 0.00947592068351736, 
0.00819339231583828, 0.0241414249675257, 0.022214689650845, 0.0165544754495112, 
0.0119897952488384, 0.00852702139073778, 0.0357322013203882, 
0.0454582184069632, 0.05419654291372, 0.0639689796722408, 0.0749947791208939, 
0.0445700854939895, 0.0493806984121361, 0.0526928942349234, 0.0560610804290682, 
0.0595674652939625, 0.0258256186623322, 0.0278406506196297, 0.0284298721928641, 
0.0289213813577344, 0.0293941320590341, 0.0557369600349524, 0.0675693013920541, 
0.0762061129774737, 0.0853339447169982, 0.0951745618665348, 0.0171631624694616, 
0.0350640216006218, 0.0556341130925104, 0.0836247441564837, 0.120733474483254
), upper = c(0.0550901244832386, 0.10504537627394, 0.195437125694758, 
0.323403092731095, 0.477154780078397, 0.0161814201791539, 0.0231702136215256, 
0.0380881102321762, 0.0606970430990062, 0.0928632628051039, 0.0345006405904498, 
0.046261189541596, 0.0720801941481896, 0.10883443823233, 0.1577758610065, 
0.0398599758225597, 0.0563263318177106, 0.0817125182150079, 0.115272694473414, 
0.157735685375171, 0.0476847568332783, 0.0581290329012679, 0.072673983374196, 
0.0900244403895002, 0.110325327955545, 0.0285699305757627, 0.0344771441605397, 
0.0434644025927379, 0.0544344789594513, 0.0675376260500437, 0.0630625316437756, 
0.0890383062732732, 0.129352639664315, 0.181375571131999, 0.244994560270329, 
0.0253570051034752, 0.06494141884307, 0.161413333266735, 0.324329403439929, 
0.531510876579345)), .Names = c("varL", "varP", 
"fit", "se", "lower", "upper"), row.names = c("1", "2", "3", 
"4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", 
"16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", 
"27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", 
"38", "39", "40"), class = "data.frame") -> effectdat

以下代码会产生错误:

library(ggplot2)

ggplot(effectdat) + geom_line(aes(varL,fit,linetype=varP)) + theme_bw() + geom_point(aes(shape = varP))

Error: geom_point requires the following missing aesthetics: x, y

我在这里阅读ggplot2_Error: geom_point requires the following missing aesthetics: y以使用unlist功能。但是,这会产生另一个错误:

ggplot(unlist(effectdat)) + geom_line(aes(varL,fit,linetype=varP)) + theme_bw() + geom_point(aes(shape = varP))

Error: ggplot2 doesn't know how to deal with data of class numeric

任何想法有什么不对?让我感到惊讶的是,没有geom_point()的函数似乎工作正常。

1 个答案:

答案 0 :(得分:0)

无需取消列出data.frame。以下代码有效:

getItems(): Promise<any> { return this.db.collection('items').get().then( items => { return this.getThingsForItems(items); }); } getThingsForItems(items): Promise<any> { return Promise.all(items.docs.map(async (element) => { var things = [] const response = await this.db.collection('items') .doc(element.id).collection('things').get(); response.forEach(subcollectionItem => { things.push(subcollectionItem.data()); }); return { Item: element.data(), Things: things } })); }

说明:添加了函数所需的缺失美学