2014-02-12 4 views
1

Я использую ggplot2 внутри R, чтобы создать визуализацию штрихового рисунка.Ширина полосы неравномерна в ggplot2 R

У меня есть две переменные колонки:

  • Strength (75 наблюдений), упорядоченные от самого высокого до самого низкого
  • Rank - Соответствующий ранг (1 является наивысшим, 75 является самым низким) указанного выше значения прочности

Я построил эти переменные в гистограмме, чтобы показать распределение значений силы от наивысшего до самого низкого.

Тем не менее, у меня возникают трудности с тем, что некоторые стержни имеют разную ширину. Я использую следующий код:

a <- ggplot(data = mydata, aes(y = Strength, x = Rank)) 

a + geom_bar(stat="identity", width = .75, fill = "grey75") + 
theme(axis.text.x = element_text(angle = -270, colour="black", vjust=.5), 
axis.title.x = element_blank(), axis.title.y = element_blank(), 
axis.ticks.y = element_blank(), axis.ticks.x = element_blank(), 
axis.text.y = element_blank(), panel.background = element_blank()) + 
geom_text(aes(label = floor(Strength)),angle = -270, hjust = -.1) 

Это возвращает следующее изображение:

bar plot

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

+1

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

+1

Откройте окно графика, используя 'windows()', сделайте свой сюжет и потяните сторону окна, чтобы настроить ширину, и вы обнаружите, что можете создать любой «странный шаблон полос». Я считаю, что это всего лишь артефакт из того, как сюжет отображается на вашем экране. Возможно, кто-то еще может предоставить более технически точное описание явления. – Henrik

+0

У меня была такая же проблема, когда отсутствовали данные. [Этот ответ] (http://stackoverflow.com/q/11020437/1290485) помог мне. –

ответ

0

То, что вы видите здесь называется муара http://en.wikipedia.org/wiki/Moir%C3%A9_pattern

Как было предложено в комментариях решение является проблемой. Увеличьте масштаб, и вы увидите, что ширина штанги равномерна. Сколько будет достаточно, зависит от параметров вашего устройства, экрана и т. Д. Действительно, увеличение или уменьшение масштаба, вероятно, создадут другие полосатые эффекты.

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