我正在阅读Drew Conway和John White的" 黑客机器学习 "一书中的教程,我遇到了绘制直方图的问题.示例代码在此处运行绘图部分:
> quick.hist <- ggplot(ufo.us, aes(x = DateOccurred)) +
+ geom_histogram() +
+ scale_x_date(major = "50 years")
Run Code Online (Sandbox Code Playgroud)
产生
Error in continuous_scale(aesthetics, "date", identity, breaks = breaks, : unused argument(s) (major = "50 years")
Run Code Online (Sandbox Code Playgroud)
和
> ggsave(plot = quick.hist,
+ filename = "C:\test.png",
+ height = 6,
+ width = 8)
Run Code Online (Sandbox Code Playgroud)
产生
Error in inherits(plot, "ggplot") : object 'quick.hist' not found
Run Code Online (Sandbox Code Playgroud)
我使用的是R版本2.14.2.和ggplot2库.在此先感谢您的帮助.
解决了
对我有用的快速解决方案是消除引用标签的每一行的'+ scale_x_date(major ="50 years")'部分.产生直方图的最终代码如下:
> quick.hist <- ggplot(ufo.us, aes(x = DateOccurred)) +
+ geom_histogram()
Run Code Online (Sandbox Code Playgroud)
我想在某些时候为图表添加标签,但是现在,这个解决方案适用于新版本的ggplot2.
更好的解决方案:
我在阅读本书的动手实例时遇到了类似的问题.我在这里发布了完整的片段,用于制作书中的最终情节(这不是本问题最初引用的相同情节,但它也暴露了同样的问题).
此修复解决了问题
Jonas Heidelberg)scales库(谢谢B0WSER)legend=(替换为guide=)opts()(替换为labs()和其他人)书籍摘要的更改在下方以粗体显示:
library(ggplot2)
library(scales)
state.plot <-
ggplot(all.sightings, aes(x=YearMonth, y=Sightings)) +
geom_line(aes(color="darkblue")) +
facet_wrap(~State, nrow=10, ncol=5) +
theme_bw() +
scale_color_manual(values=c("darkblue"="darkblue"), guide ="none" ) +
scale_x_date(breaks = date_breaks(width ="5 years"),
labels = date_format("%Y")) +
xlab("Time") + ylab("Nb of Sightings") +
labs(title ="Nb of UFO sightings by Month-Year and US State (1990-2000)")
print(state.plot)
Jon*_*erg 14
第二个问题是由第一个引起的.此论坛讨论表明您看到的版本与您的第一个问题不兼容.链接的PDF在第31/32页讨论了你的问题; 它似乎
scale_x_date(breaks = date_breaks(width = "50 years"), labels = date_format("%Y"))
Run Code Online (Sandbox Code Playgroud)
是你应该使用的新语法而不是scale_x_date(major = "50 years").阅读PDF以获取更多详细信息......祝您好运!如果继续使用它,您可能希望安装本教程编写的确切软件版本...
根据R帮助,输入date_breaks时,必须指定宽度,然后指定时间范围和规格("秒","分钟","小时","日","周","月","年")到让它正常运作.我已经为前面的代码片段添加了必要的语法.这是在2012年10月14日通过机器学习黑客教程进行验证和测试的.
| 归档时间: |
|
| 查看次数: |
3737 次 |
| 最近记录: |