Определение границ градиентной цветовой заливки с помощью ggplot2 на гистограмме - PullRequest
0 голосов
/ 26 мая 2020

Я относительно новичок в R, поэтому заранее прошу прощения, если допустил ошибки в коде или использовал неверную терминологию. Я пытаюсь создать несколько гистограмм с градиентной заливкой цвета. Я легко смог сделать это с помощью ggplot, и вот что я смог получить ( Несколько гистограмм ). Как видно на этом рисунке, масштаб остается неизменным для всех значений.

Теперь моя цель - воссоздать каждую из этих гистограмм по отдельности, чтобы я мог добавить geom_label в угол ( Single Histogram ), но масштаб градиентной заливки сбрасывается для каждого гистограмма к этому набору данных c. Кто-нибудь знает, как я могу сохранить согласованность масштаба градиентной заливки на одной фигуре гистограммы для всех гистограмм, которые я делаю (как и на нескольких гистограммах)?

Заранее спасибо

mydata<-read_excel("DataBook.xlsx", sheet=3)

meanprice<-mean(mydata$surf, na.rm=TRUE)
sdprice<-sd(mydata$surf, na.rm=TRUE)

meantxt <- paste("Mean = $", format(round(meanprice, 2), nsmall=2), sep="")
sdtxt <- paste("Standard Deviation = $", format(round(sdprice, 2), nsmall=2), sep="")
fulltxt <- paste(meantxt, sdtxt, sep="\n")
limitx <- round_any(max(mydata$surf, na.rm=TRUE), 10, f=ceiling)
filename <- paste("Histogram_surf.png")

p <- ggplot(mydata, aes(x=surf)) + 
	geom_histogram(color="black", aes(fill=..count..))+ 
	scale_x_continuous(name = "Price ($/Unit)", breaks=seq(0, limitx, 50), limits=c(0,limitx), expand=c(0,0)) +
	scale_y_continuous(name = "Number of Awarded Bids", expand=c(0,0), breaks=seq(0, 250, 25), limits=c(0, 250))
p + theme_bw(base_size=16, base_family='Times New Roman')+ 
	ggtitle("HMA-Surface Course")+
	theme(plot.title=element_text(color="black", size=18, face="bold", hjust=0.5), axis.title = element_text(color="black", size=16, face="bold"), legend.position="none")+ 
	geom_label(x=Inf, y=Inf, aes(label = fulltxt), hjust=1, vjust=1, size=(18*(4/15)), family='Times New Roman')
ggsave(filename, dpi=300, height=4, width=5, units="in")
...