2017-02-09 6 views
1

Я сделал ggplot, который имеет 86 элементов на каждой оси. Я пытаюсь настроить текстовые метки/тики, чтобы их можно было правильно прочитать. На данный момент я могу создать только сюжет, который не предоставляет достаточно места для текста по оси x. См. Фото.Развернуть перегруженную ось x в ggplot2

photo

Здесь выбираются значения из dataframe, что затевается:

 Var1 Var2  value group 
1  1 1 1.0000000 Group 1 
2  2 1 0.7086322 Group 1 
1654 20 20 1.0000000 Group 2 
1657 23 20 0.7037037 Group 2 
2524 30 30 1.0000000 Group 3 
2526 32 30 0.8466508 Group 3 
4177 49 49 1.0000000 Group 4 
4186 58 49 0.7201761 Group 4 
5830 68 68 1.0000000 Group 5 
5837 75 68 0.8125000 Group 5 
6700 78 78 1.0000000 Group 6 
6701 79 78 0.8402689 Group 6 

Это то, что я до сих пор:

assign.colour<-c("#8DA0CB","#66C2A5","#A6D854","#E5C494","#E78AC3","#FC8D62") 
p<-ggplot(data=df,aes(Var1,Var2)) + geom_tile(data=df,aes(fill=group),color="grey")+ 
    scale_fill_manual(values = assign.colour)+ 
    theme(axis.text.x=element_text(angle=45,margin = margin(1, unit = "cm")))+ 
    scale_x_discrete(position="top") 
p 

Я также попытался expand=c(0,0) но Бесполезный ничего не делай. Я попробовал hjust=-0.1, и он переместил метки над границей графика, но расстояние было слишком жестким для чтения. Любая помощь будет оценена по достоинству.

ответ

0

Вы пробовали работать с размерами чертежного устройства?

Если PDF,

pdf("output.pdf", width = xx, height = yy) 

Пожалуйста, обратитесь следующее для клеща пространств, а также:

Change distance between x-axis ticks in ggplot2

+0

Я пробовал угол = 90, и он читается, но все еще сложно, потому что нужно наклонять голову, а метки выравниваются по центру, поэтому длинный текст выступает, а более короткие - с волнистым внешним видом. Размер = rel (0.5) сделал его слишком маленьким. Я попытался вывести размеры как 1024x768, а метки все еще хрустели. –

+0

входные данные - это матрица обилия? Plz совместно используют структуру входных данных и код, используемый для создания фрейма данных (только для того, чтобы сначала реплицировать вашу проблему). попробует на моем конце и вернется назад –

1

Попробуйте добавить этот

theme(axis.text.x=element_text(angle=90,margin = margin(1, unit = "cm"),vjust =1)) 

или вы можете отрегулировать размер в element_text

theme(axis.text.x=element_text(angle=45,size = rel(0.5), margin = margin(1, unit = "cm"),vjust =1)) 

Наконец, сохраните свой участок как изображение большего размера.

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

  • Нет связанных вопросов^_^