barplot () в R: маркеры, размер, метки - PullRequest
1 голос
/ 30 марта 2020

Я пытаюсь нарисовать график в R, используя barplot(). Но я сталкиваюсь с несколькими проблемами. Сначала я прилагаю изображение графика и код, который я использую для построения графика. Затем я описываю проблемы.

Изображение:

image

Вот фрагмент кода, который я использую для создания этого графика .

    par(mar=c(14, 7, 2, 2), mgp=c(5,2,0))

        midpts<-barplot(x[,input$year], 
                        main=input$year,
                        ylab="Number of Units",
                        xlab="Product",col='maroon')
        vps <- baseViewports()
        pushViewport(vps$inner, vps$figure, vps$plot)

        grid.text(rownames(x),
                  x = unit(midpts, "native"), y=unit(-1, "lines"),
                  just="right", rot=90)
        popViewport(3)

Проблемы:

1) Весь этот график также выглядит очень маленьким, и я бы хотел, чтобы он был больше.

2) Некоторые маркеры в Ось Y не видна. Недостающие маркеры зависят от выпадающего списка "Год". В течение нескольких лет будут появляться все маркеры оси Y, для других будет отсутствовать пара, как в этом.

3) Может ли кто-нибудь также сказать мне, как я могу сделать свою метку X («Продукт») и метку Y («Количество единиц») жирной и четкой, чтобы их можно было отличить от маркеров?

Примечание. Этот график является частью панели инструментов R-Shiny, но я не думаю, что это имеет значение для внесения изменений.

1 Ответ

1 голос
/ 30 марта 2020

Исправления

1) Размер

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

Один из способов исправить это - уменьшить размер текстовых меток и полей, чтобы было больше места для столбцов.

2) Маркеры оси Y

Это происходит по двум причинам: 1 - вы показываете их выровненными параллельно оси y, поэтому они занимают много места, и 2 - шрифт большой, поэтому они перекрываются. В таком случае лучше не показывать некоторые надписи, чем перекрывать их.

Чтобы это исправить, вы можете рассмотреть возможность поворота надписей на 90 градусов.

3) Жирные надписи

Вы можете добавить метки к графику с помощью отдельной функции title(), которая управляет этими параметрами.

4) Дополнительно

I Предложите исключить то, что вы делаете, «viewPort», так как он задает c для сетки.

Результат

В общем, вот версия с кодом, которая должна исправить большинство ошибок. ваши проблемы. Вы не предоставили набор данных, который использовали, поэтому вместо этого я использовал "USArrests".

par(mar=c(7, 7, 2, 2), mgp=c(5,2,0))

mids <- barplot(USArrests$Assault, col='maroon', las=2, cex.names=0.7, cex.axis=0.7)
mtext(rownames(USArrests), 1, at=mids, las=2, cex=0.7)

title("Assault")
title(xlab="states", font.lab=2)
title(ylab="Number of Units", font.lab=2)

result

...