2016-09-15 2 views
0

Я хочу представить проценты в течение 24-часового периода с интервалом 15 минут в виде штрихового графика.R: установка расстояния между метками и положения на штриховом графике

Когда я использую barplot(), метки для этих временных точек более или менее случайным образом выбираются R (в зависимости от того, как я форматирую окно. Я знаю, что это не случайно, но это не то, что я хочу). Я предпочел бы, чтобы они равномерно распределялись с интервалом в 1 час (это каждый 4-й бар).

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

Так вот пример. Извините за длинные строки:

x<-sample(1:100,96) 
Labels<-c("09","09:15","09:30","09:45","10:00","10:15","10:30","10:45","11","11:15","11:30","11:45","12","12:15","12:30","12:45","13","13:15","13:30","13:45","14","14:15","14:30","14:45","15","15:15","15:30","15:45","16","16:15","16:30","16:45","17","17:15","17:30","17:45","18","18:15","18:30","18:45","19","19:15","19:30","19:45","20","20:15","20:30","20:45","21","21:15","21:30","21:45","22","22:15","22:30","22:45","23","23:15","23:30","23:45","00","00:15","00:30","00:45","01","01:15","01:30","01:45","02","02:15","02:30","02:45","03","03:15","03:30","03:45","04","04:15","04:30","04:45","05","05:15","05:30","05:45","06","06:15","06:30","06:45","07","07:15","07:30","07:45","08","08:15","08:30","08:45") 
names(x)<-Labels 
barplot(x) 

ответ

0

Я не думаю, что вы можете заставить R показать каждую метку, если ей не хватает места. Но, по крайней мере, если вы хотите, чтобы добавить метки каждый 1h, следующий код должен работать:

x<-sample(1:100,96) 
Labels<-c("09","09:15","09:30","09:45","10","10:15","10:30","10:45","11","11:15","11:30","11:45","12","12:15","12:30","12:45","13","13:15","13:30","13:45","14","14:15","14:30","14:45","15","15:15","15:30","15:45","16","16:15","16:30","16:45","17","17:15","17:30","17:45","18","18:15","18:30","18:45","19","19:15","19:30","19:45","20","20:15","20:30","20:45","21","21:15","21:30","21:45","22","22:15","22:30","22:45","23","23:15","23:30","23:45","00","00:15","00:30","00:45","01","01:15","01:30","01:45","02","02:15","02:30","02:45","03","03:15","03:30","03:45","04","04:15","04:30","04:45","05","05:15","05:30","05:45","06","06:15","06:30","06:45","07","07:15","07:30","07:45","08","08:15","08:30","08:45") 

b=barplot(x,axes = F) 
axis(2) 
axis(1,at=c(b[seq(1,length(Labels),4)],b[length(b)]+diff(b)[1]),labels = c(Labels[seq(1,length(Labels),4)],"09")) 

histo

+0

Спасибо, что работает очень хорошо. Могу ли я также сделать метки оси выше последней текущей метки. Как и в случае с ярлыками, тиками и базовыми линиями, «08». Я предполагаю, что это потому, что последний столбец находится в 08:45. Я все еще хотел бы иметь ярлык «09» и галочку, так как сейчас это выглядит неловко. – Valentin

+0

Пример: ось (1, at = c (b [seq (1, len (метки), 4)], b [длина (b)] + diff (b) [1]), метки = c (Ярлыки [seq (1, len (Ярлыки), 4)], «09»)) – user3507085

+0

Извините, я не мог заставить это работать. Одно дело в том, что мне нужно обменивать длину для len (это в определенном пакете?), Но я всегда получаю следующее сообщение об ошибке: «Ошибка: неожиданный ввод в« оси ... »Я пробовал разные вещи (включая уход len), но не нашли проблему. – Valentin

Смежные вопросы