i tried to build the following sample plot (see here for an example of a CIELAB Color Wheel). It is nearly finished, but there are still some small issues (see demo):
- the numbers on the axis (the numbers, not sure how it is called in english) should be directly on the x/y axis (x=0 and y=0). at the moment i am using hline and vline to "add" the axis. Is there a way to move the whole axis?
- the axis labels are next to the axis, but should be at the end of the axis as in the sample image. I am not sure if there is a solution for that. Tried to find the solution in the books of wickham and chang, but failed. not sure if such a plot is possible with ggplot2.
Sorry for the links, as a new user i am not allowed to post images :(
thanks a lot
simon!
library(ggplot2)
circleFun <- function(center = c(0,0),diameter = 1, npoints = 100){
r = diameter / 2
tt <- seq(0,2*pi,length.out = npoints)
xx <- center[1] + r * cos(tt)
yy <- center[2] + r * sin(tt)
return(data.frame(x = xx, y = yy))
}
# sample data for yellow
colorvals <- data.frame(file = 'Yellow.csv', L = 88.94026, a = -9.8599137, b=88.77139)
# build the circles for the plot
r20 <- circleFun(center = c(0, 0), diameter = 40, npoints = 100)
r40 <- circleFun(center = c(0, 0), diameter = 80, npoints = 100)
r60 <- circleFun(center = c(0, 0), diameter = 120, npoints = 100)
r80 <- circleFun(center = c(0, 0), diameter = 160, npoints = 100)
r100 <- circleFun(center = c(0, 0), diameter = 200, npoints = 100)
r120 <- circleFun(center = c(0, 0), diameter = 240, npoints = 100)
dat <- rbind(r20, r40, r60, r80, r100, r120)
# plot the data
ggplot(data = dat, aes(x, y)) +
geom_path() +
geom_hline() +
geom_vline() +
theme(legend.position = c(1,0), legend.justification=c(1,0)) +
xlab("a* (Grün/Rot)") +
ylab("b* (Gelb/Blau)") +
labs(colour="L*") +
geom_point(data = colorvals, aes(x = a, y = b), size=3) +
geom_text(data = colorvals, aes(x = a, y = b, label = gsub(".csv", "", file)), size = 3, vjust=0,hjust=1.2)
See Question&Answers more detail:
os