【发布时间】:2018-04-25 00:13:56
【问题描述】:
我使用并排栏为几个变量绘制了一个 ggplot,但似乎 y 轴显示时没有任何校准 - 显示每个数字(以 % 为单位)
该图的主题是显示美国每个州的白人、西班牙裔和黑人在总人口中所占的比例 (%)。如您所见,应该代表百分比的 Y 轴看起来像是所有值都被推入其中,而不是从 0 到 100 的校准
我正在使用的数据集在github_fivethirtyeight_police-killings 提供(很抱歉,我无法找到一种方法来组织我从数据框中获取的五列:州、种族和您看到的三个共享右边(%)
R代码呈现:x<-read.csv("C:/Users/USER/data/police-killings/police_killings.csv",header=TRUE, sep = "," ,stringsAsFactors = FALSE)
state<-x[,10]
ethnicity<-x[,4]
state_and_shares<-x[,c(10,23:25)]
df2<-melt(state_and_shares, id.vars = 'state')
head(df2)
ggplot(df2,aes(x=state,y=value,fill=variable))+geom_bar(stat = 'identity',position = 'dodge')+theme(axis.text.x = element_text(angle = 90, hjust = 1))
谁能告诉我如何考虑 Y 值以使其看起来更正常并且不显示所有值?
【问题讨论】:
-
这可能是因为您的
value列不是数字。在运行 ggplot 之前尝试运行df2$value <- as.numeric(df2$value)。如果您使用dput共享实际数据的子集,这也将更容易回答。 -
由于 melt 将值和变量强制转换为因子,因此该图显示的 y 值非常大(以千计)。我尝试将它强制转换为数字之前的字符,但仍然以某种方式混合了这些值,所以我得到如下信息:在某个国家/地区有 99% 的西班牙裔、95% 的白人、90% 的黑人,加起来不等于 100%