Как построить график по метке в R
У меня есть следующие данные:
Country Quality.of.life.index
1 Switzerland 206.23
2 United States 195.55
3 Germany 192.69
4 Sweden 180.92
...
Я ищу способ сделать график с метками "Страна" слева и полосой, соответствующей их значениям Quality.of.life.index справа. Любой способ сделать это в R?
Вот пример того, что я имею в виду: http://www.pewglobal.org/2014/04/15/global-morality/table/gambling/
3 ответа
Решение
Разработка комментария @r2evans, вот barplot
:
par(mar = c(4, 7, 4, 2)) ## This sets the left margin wider
barplot(mydf$Quality.of.life.index, ## The vector of values you want to plot
names.arg=mydf$Country, ## The labels
horiz=TRUE, las = 1) ## Horizontal bars and labels
Это предполагает следующие исходные данные:
mydf <- data.frame(
Country = c("Switzerland", "United States", "Germany", "Sweden"),
Quality.of.life.index = c(206.23, 195.55, 192.69, 180.92))
mydf
# Country Quality.of.life.index
# 1 Switzerland 206.23
# 2 United States 195.55
# 3 Germany 192.69
# 4 Sweden 180.92
Вы могли бы использовать lattice::barchart
, Мне пришлось немного манипулировать вашими данными, потому что они не будут читать. Но если вы звоните только data$Country
колонка, data$QofLife
колонка и т. д. должно быть хорошо.
> library(lattice)
> Country <- c('Switzerland', 'USA', 'Germany', 'Sweden')
> QofLife <- c(206.23, 195.55, 192.69, 180.92)
> barchart(Country ~ QofLife, xlab = 'Quality of Life')
Точечный график также является хорошим выбором для данных такого типа (используя подготовленные данные @Richard)
#using base graphics
dotchart(structure(QofLife, names=Country), xlab = 'Quality of Life',main="graphics")
#using lattice
require(lattice)
dotplot(Country ~ QofLife, xlab = 'Quality of Life', cex=1.2, main="Lattice")