как решить ошибку компиляции графа с разными данными с помощью R - PullRequest
0 голосов
/ 07 августа 2020

Я хочу нарисовать несколько графиков, используя код R с разными файлами данных (a.xlsx, b.xlsx, c .xlsx).

Я уже делаю код, используя R. Но возникает ошибка ошибка.

Сообщите мне, как решить эту ошибку.

'''Example R code'''
library(readxl)
library(ggplot2)

a <- read_excel("D:/a.xlsx")
b <- read_excel("D:/b.xlsx")
c <- read_excel("D:/c.xlsx")


plot1 <- ggplot(a, aes(x=aaa, y=bbb)) + geom_line()
plot2 <- ggplot(b, aes(x=aaa, y=bbb)) + geom_line()
plot3 <- ggplot(c, aes(x=aaa, y=bbb)) + geom_line()

pt <- rbind(plot1, plot2, plot3)


ggplot(pt, aes(x=aaa, y=bbb)) + geom_line() + geom_point() + geom_line(aes(color=type)) 



#Error Message


> ggplot(plot1, aes(x=SCvector, y=qNetvector)) + geom_line()
 ERROR : `data` must be a data frame, or other object coercible by `fortify()`, not an S3 object with class gg/ggplot

Запустите rlang::last_error(), чтобы узнать, где произошла ошибка.

1 Ответ

0 голосов
/ 07 августа 2020

Добро пожаловать в StackOverflow. В качестве следующего вопроса вы можете предоставить воспроизводимый пример .

На сегодняшний день я предполагаю, что ваш вопрос: «У меня есть 3 data.frame с той же схемой, и Я хочу изобразить их содержимое на графике, который будет состоять из трех подсюжетов ».

Одним из решений было бы использовать facet:

# Firt, let's make some fake data that anyone can reproduce.
set.seed(123)
library(magrittr)
library(tidyverse)
a <- data.frame(aaa=seq(10), bbb=rnorm(10), type=sample(letters[1:3], 10, replace=TRUE))
b <- data.frame(aaa=seq(10), bbb=rnorm(10), type=sample(letters[1:3], 10, replace=TRUE))
c <- data.frame(aaa=seq(10), bbb=rnorm(10), type=sample(letters[1:3], 10, replace=TRUE))

# This should be quite similar to your data.
# Now we can work on it. 
# First, we bind all your data in one data.frame.
# But to know which observation comes from which data.frame, we add a 'source' column.
a %<>% mutate(source="a")
b %<>% mutate(source="b")
c %<>% mutate(source="c")
z <- do.call(rbind, list(a, b, c))

# And finally we can build a plot.
z %>% ggplot(aes(x=aaa, y=bbb, group=type, color=type)) + geom_point() + geom_line() + facet_wrap("source")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...