Так же, как этот вопрос опубликовано здесь Я хочу создать серию гистограмм без необходимости устанавливать верхнее предельное значение y, но чтобы шкала была только целочисленной и увеличивалась по мере необходимости на оси , у некоторых графов будет 2, у некоторых 45. Таким образом, на графиках, которые будут иметь максимум 2, я не хочу видеть масштаб 0,2, 0,4., 0,6, 0,8, 1, 1,2, 1,4 ,. ... Я хотел бы видеть 1, 2. Те, которые идут к 45, могут увеличиваться по мере необходимости, но не сжимать числа в ось или сбрасывать значения. Я не знаю, как привести сокращенные примеры данных, но я показал некоторые графические результаты, которые, я надеюсь, помогут. В основном код пытается сгенерировать гистограмму для каждого года, в каждом GMU (это местоположение), подсчет по полу Cementum (это возраст). Итак, в 2015 году в местоположении 12 было 10 женщин и 7 мужчин в возрасте 1 года и т. Д. Все началось с того, что я не хотел разрыва между гистограммой и осевыми линиями. Когда вы расширяете ось x или ось y, чтобы она была заподлицо, она портит все значения осей. Я мог бы установить пределы оси X, поскольку я знаю, что для любого года 15 - самый старый возможный возраст. ось Y отсчета будет изменяться. У меня 10 лет данных, 14 локаций, 2 пола, максимальный возраст 15 лет.
for (i in 1:length(unique(adultmar$Year))) {
year = subset(adultmar, adultmar$Year == unique(adultmar$Year)[i])
for (j in 1:length(unique(year$GMU))) {
yearGMU = subset(year, year$GMU == unique(year$GMU)[j])
AgeSex <- ggplot(yearGMU, aes(x=Cementum, fill = Sex, colour = Sex))+
geom_histogram(binwidth = 1, alpha = 1)+
labs(title = paste0(unique(year$GMU)[j],"_",unique(adultmar$Year)[i]))+
labs(x = "Age", y = "Count")+
facet_grid(Sex~.)+
expand_limits(x=15)+
scale_x_continuous(breaks=seq(1,15,2),expand = c(0,0))+
scale_fill_manual(name = "Sex",values = myColors, 1)+
scale_color_manual(values = c("black", "black"))+
theme_minimal()+
theme(legend.position="none",
panel.border = element_blank(),
axis.line.y = element_line(colour = "black"),
panel.background = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.spacing = unit(1, "lines"),
axis.text = element_text(size = 12),
legend.text = element_text(size = 12),
axis.title.y = element_text(size = 12),
axis.title.x = element_text(size = 12),
strip.text.x = element_text(size = 12))
Я попытался добавить следующие решения в виде строк. Ни один не дает последовательного результата
ylim(digits=1)+
scale_y_continuous(breaks=seq(0,45),expand = expand_scale(mult = c(0, .1)))+
scale_y_continuous(breaks=seq(from=0,to=round(max(yearGMU$Cementum)),1))+
scale_y_continuous(breaks=pretty_breaks())+
scale_y_continuous(breaks = function(x) seq(ceiling(x[1]), floor(x[2])))+
Поскольку серии графиков создаются без каких-либо команд по оси Y, некоторые графики, кажется, работают нормально:
Но затем в этом же продукте появляются графики, на которых отображается десятичное место, или оно даже не указывает верхнее предельное значение y, как в этих двух:
Попробовав множество вариантов команд примера для изменения шкалы y, я получаю графики с информацией о нулевой оси, графики с перекрывающимися числами, графики с числами, которые идут до 10, и затем ничего над ними, хотя гистограмма явно продолжается намного выше 30. как эти: