Проверьте эту ссылку в MDN
let x = 1;
if (x === 1) {
let x = 2;
console.log(x);
// expected output: 2
}
console.log(x);
// expected output: 1
Нашел! Фактически, ширина поддерживается, хотя масштаб находится в секундах, так как я рисую временной ряд, где ось X отформатирована как дата POSIX. Следовательно, ширина = 0,9 означает, что ширина ячейки составляет 0,9 секунды. Поскольку мои ячейки имеют 2 часа каждый, тогда ширина «1» на самом деле равна 7200. Итак, вот код, который работает.
ggplot(DF, aes(x=time, y=count, width=6000, fill=level)) +
geom_bar(stat="identity", position="identity", color="grey") +
scale_x_datetime(labels = date_format("%D"), breaks = date_breaks("day")) +
xlab("myXlabel") +
ylab("myYlabel") +
ggtitle("myTitle")
Результаты, как показано ниже. В барах есть несколько аверлапсов, мне просто нужно скорректировать мои данные, скажем, на следующий час.
[/g0]
Если то, что вы пытаетесь достичь, это расширение баров на графике, ggplot, похоже, не поддерживает это для geom_bar
. Тем не менее, довольно просто реализовать панель с использованием geom_rect
.
Поскольку многие из точек данных, по-видимому, расположены на расстоянии примерно двух часов друг от друга, я предполагаю, что ширина 0.9, которую вы хотите достичь, равна 0,9 часов в обе стороны заданного времени (так что в основном выжимают большую часть пространства между полосками.
Если это то, что вы хотите, следующий код должен работать:
library(lubridate)
ggplot(DF, aes(xmin=time-minutes(54), xmax=time+minutes(54), ymin=0, ymax=count,
fill=level)) +
geom_rect(color="#666666")