制作条形图以分发连续变量

时间:2017-05-03 16:36:41

标签: r ggplot2

我制作一个条形图来显示连续变量的分布,例如:上市价格的价格分布。 我生成了一些样本数据并用ggplot2制作了一个条形图。

IWebElement element = driver.FindElement(By.ClassName("button" or "btn"));

enter image description here

我的问题是

  • 如何格式化xaxis标签,例如,1.22e + 03变为1220.

  • 为什么最后一个bin成为NA?

我知道我可以使用geom_histogram来获取这些数据。但我只是想有一些灵活性,可以将连续变量切换成一些高度偏斜的数据。 很感谢任何形式的帮助。提前致谢。

1 个答案:

答案 0 :(得分:3)

这两个问题都与cut()有关。您应该阅读?cut

要避免类标签中的科学记数法,请使用参数dig.lab。在您的示例中,cut(a, breaks=seq(min(a),max(a), 500), dig.lab = 6L)似乎已足够。

NA出现与您的breaks参数相关的两个原因。首先,默认情况下,第一个中断会从cut()中排除,以便a == min(a) NA的观察位置为include.lowest = TRUE。要解决此问题,请使用seq(min(a), max(a), 500)

最后,您的最高值将被忽略,因为max(a)会生成一个向量,该向量在max(a) 之前的500 的最后一个多位处停止,因此不包含{{1} }。要解决此问题,您需要确保seq的第二个参数是max(a)之后的500的第一个倍数,如ceiling(max(a) / 500) * 500

因此,这应该有效:

d <-d %>%  
  mutate(b=cut(a, breaks=seq(min(a), ceiling(max(a) / 500) * 500, 500), 
               include.lowest = TRUE, 
               dig.lab = 6L)) %>% 
  group_by(b) %>% summarize(count=n())