GuangchuangYu / ggplotify

ggplot everything
https://cran.r-project.org/package=ggplotify/vignettes/ggplotify.html
104 stars 11 forks source link

as.grob() on lattice graphics not comparable with all.equal() #12

Open kplevoet opened 3 years ago

kplevoet commented 3 years ago

Dear Guangchuang Yu,

I am using your ggplotify package to make automatic exercises for students. However, when rendering a lattice graphic to a grob with as.grob(), there are many differences between the student's submission and the solution in the components childrenvp and childrenetc.

library(ggplotify)
library(lattice)

For instance, we can work on the built-in data set in R CO2:

data(CO2)

Say, we want to make a density plot of uptake for the different Treatments but with different panels for Type:

Solution_Plot <- densityplot(~ uptake | Type, data = CO2, plot.points = FALSE,
                            groups = Treatment,
                            auto.key = list(space = "right")
                            )

Suppose that the student submits the exact same solution:

Student_Plot <- densityplot(~ uptake | Type, data = CO2, plot.points = FALSE,
                            groups = Treatment,
                            auto.key = list(space = "right")
                            )

When I use the all.equal() function to compare the grobs of both plots, there is a whole list of differences:

Solution_Grob <- as.grob(Solution_Plot)
Student_Grob <- as.grob(Student_Plot)
all.equal(Solution_Grob, Student_Grob)
...

How can this be solved?

Best,

Koen