我想绘制以下数据:
Alabama Alaska Arizona
5471 1349 2328
Arkansas California Colorado
2842 16306 3201
Connecticut Delaware District of Columbia
3067 1685 3195
Florida Georgia Hawaii
15029 8925 289
Idaho Illinois Indiana
661 17556 5852
Iowa Kansas Kentucky
2517 2145 4157
Louisiana Maine Maryland
8103 907 5798
Massachusetts Michigan Minnesota
5981 6136 2408
Mississippi Missouri Montana
3599 6631 638
Nebraska Nevada New Hampshire
1651 1952 964
New Jersey New Mexico New York
5387 1645 9712
North Carolina North Dakota Ohio
8739 573 10244
Oklahoma Oregon Pennsylvania
3455 2286 8929
Rhode Island South Carolina South Dakota
895 6939 544
Tennessee Texas Utah
7626 13577 1072
Vermont Virginia Washington
472 5949 3434
West Virginia Wisconsin Wyoming
1575 4787 494
在具有递减值的水平条形图中。我尝试了各种情节,但没有出现州名。只打印了一些名字。
我使用了简单的 Plot 函数,但我无法弄清楚如何让状态的名称出现。
将上述数据绘制成水平直方图
plot(table(dfnew$state), type = "h")
只出现了几个州名。
最佳答案
虽然我看到您尝试提供您的数据(谢谢),但它不是我无需再次全部输入即可使用的格式。我不想那样做,所以我将改用内置的 USArrests 数据。
您可以使用 barplot
函数获得水平条形图。尝试将 50 个州挤在那里,您将需要调整边距并使用小字体,但这当然可以做到。您可以使用 order
对条目进行排序。
data(USArrests)
par(mar=c(4,7,1,2))
barplot(USArrests$Murder[order(USArrests$Murder)],
names.arg=row.names(USArrests)[order(USArrests$Murder)],
las=2, cex.names=0.7, horiz=TRUE)
我认为您的数据需要的是
par(mar=c(4,7,1,2))
TAB = table(dfnew$state)
barplot(sort(TAB), names.arg=names(TAB)[order(TAB)],
las=2, cex.names=0.7, horiz=TRUE)
但没有您的数据,那是未经测试的。顺便说一句,您可能还需要使图形窗口比默认窗口大。
关于r - 如何在水平条形图中绘制具有递减值的数据,以便显示所有州的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57453056/