各位大侠:
请问,在ggplot2和lattice里如何实现基本图形里mgp和mar两个参数 的控制功能?
谢谢!
各位大侠:
请问,在ggplot2和lattice里如何实现基本图形里mgp和mar两个参数 的控制功能?
谢谢!
关于ggplot:
应用ggplot2绘图只需要了解以下几部分即可,
数据设定 ggplot()、绘图类型 geom_***、辅助信息调整 xlab ylab labs xlim ylim、绘图参数调整 opts、绘图元素细节调整 theme_*** scale_*** coord_***、多图绘制 facet_***、经过这样的细节化调整后,基本上能够满足你所能够想出的现实需求,包括你在一些专业机构那里看到的图表类型。
详细说明见此帖6楼
http://cos.name/cn/topic/108396
至于lattice,很少用到[s:19],大部分ggplot均可解决
我在想,ggplot2 和 lattice 需要调这些东西么?
我想是不需要的。因为它们的理念与基础图形相异,已经不是基础图形那种刀耕火种的方式了,而且这些细节通常已经在底层处理得很好了,很少需要手工干涉。
还有,没必要为了捧 ggplot2 而黑 lattice,一般的多元数据现成图形 lattice 好用着呢。何况 lattice 图形有一种古典美,ggplot2 图形有时显得廉价,可能是太容易画了。
回复 第3楼 的 肖楠:好黑啊
回复 第4楼 的 oldbeggar:是啊,高级黑 。。。[s:11]
回一楼:
刚想起来,你可以找本书是介绍lattice的,Lattice Multivariate Data Visualization with R
回三楼:
我要开始向你吐苦水了[s:11]
事实上,我个人认为matlab所绘制的一些plot图就很好了,功能简单界面清晰,尤其是像一些工业上的、工程上的,还有一些自然科学类别的多维指标绘图。
在以上所列的数据领域内,那里的人所提供的都是非常专业的数据集,比如像NASA、NOVA、USGS等,无论是从数据格式、数据定义、数据精度、数据地址、数据接口等都非常之专业,许多模块仅就我个人使用经验看,基本上数据框架是五六年如一日,持之以恒的稳定,偶尔在细节上有些微调也由于最开始的数据框架设计的周全而不会让立刻修改控制与分析代码。
回到我们的问题,当你不幸的进入社会科学领域的数据沼泽,你会发现数据框架只能在收益率很高的专业机构那里才能体现,比如feb、ecb、sta、wda等。即使这样每一个机构所提供的数据框架也会因人而异。比如:feb提供单指标数据,他的一个数据集压缩包中含有6万多个数据指标文件。
当我们满以为其他的机构也会这么的专业的时候,ecb的数据框架就变为了单一数据文件中含100个左右的指标数据,而且每个指标又依国别不同而呈指数级膨胀,想想在R里对其做melt(data,id="date"),会生成怎样的一个数据变量。。。
这还是一个开始,sta就更有之而过不及了,大约一百个左右数据压缩包,每个里面的数据是双指标还在数据集中提供adj、unit等数据辅助信息。
wda提供的是全xlsx文件,你要与时俱进的安装xlsx包。
那么,如果你有幸对国内社科数据有需求,那你的福倒了。我们的sta、sse、szse、safe给你提供了五花八门的数据集,不能称其为数据框架,他们的脑海里还处在前一次冰川末期,到处充满了泥泞和沼泽。比如:sta(我国的),他到现在都还没有捋顺指标体系结构,更不要说统一数据格式以及进行准确数据定义了,至于数值生成的公式就更是不着边际的东西(可以去网上搜索这个文件eurostaat的"BulkDownloadListing.pdf"和ecb的"handbookcompilationflowstatisticsmfibalance 200602en.pdf"对照一下sta我国的)。不知道谁有过在图书馆调阅sta(我国的)发行的年鉴及其配套光盘的经验,有没有一种”感脚“,sta(我国的)可能认为数据是给人看的而不是给人用的。
还有一个最关键的问题就是,我国的数据发行机构尤其是上边的那个(我国的)所发布的数据,其法律责任好像并不是很清楚,这就给这些社科数据画上了一个大大的?号,错了——是你的责任还是他的责任?什么是数据的法律责任——如此:http://www.ecb.int/ecb/legal/html/index.en.html
不过pbc(我国的)还是不错的,属于我所说的那种涉及收益率较高机构类别,不过有个问题就是一次我检查其所发布的数据发现其中竟然含有公式,也就是说其发布的不仅包括源数据还有源公式,如果不注意,对其进行数据转置的话那些公式就会给你算出一个意想不到的数字,让你以为进入到了电影2012的情节。而后我想电话联系一下,希望他们注意,但是其官网及114台所提供的电话均无法接入其统计调查司。邮件我就更不指望了;而远在European的ecb却可以通过邮件及时回答你的相关数据问题并提供帮助。
这和绘图有什么关系呢————一个良好的数据框架可以非常容易的批量化的导入数据库,并通过统计分析软件处理并批量化的输出图表且配以图表辅助信息比如:update,unit,adj(etc.);如果是否,那你就进行细节调整吧,没有一套系统的微调参数,那么你的图就会不知所云。比如:有的数据文件的时间序列是作为列名存在,如果不幸是个每日数据,再加一个历史数据条件,那很有可能是7、8千列,mssql2008倒是支持,R呢,速度呢,绘图区域切分呢,每一plot的单独辅助信息呢,调吧。而这仅仅是其中的一个数据文件。————再天马行空的想一想其他类别的社科类数据[s:12]
最后,要说明一下,个人对国内数据发布机构没有什么负面看法,但对其所发布的数据质量基本上是抱谨慎看法。对于上述涉及到国外机构所发布的数据,由于其有明确的法律责任,出现由于数据发布产生的错误——责任他担,这样也就不会对其数据存在什么看法了。至于图表,合手即好,只要他是给人设计使用的。其实我对二维图表并不是特别感兴趣,个人倾向于数据立体可视化,因为二维图表所能够显示的数据维度相对单一;比如:我希望把100个左右的等时间序列区间的数据单项集显示出来,用二维图表可能就全都相互叠加了,很难看出差异。用三维圆柱体进行等分,而后依据数据类别带入数据序列到相关圆柱体表面指定区域,这样圆柱体就会呈现凹凸不平的情况,你也就可以看到100个数据单项集之间的关系了。所以一般使用3dmax的脚本来处理,最近正在测试maya中用python脚本来做,maya的脚本语言开放性和易用性比3dmax相对较好。[s:13]
ps:
附注一个问题:
请问像这种尺寸较大,清晰度较高,且放大后细节失真较小R怎样做。以下服务器目录中的20110516.jpg文件,宽度10803、高度7200、水平/垂直分辨率300dpi、文件大小28M、USGS(美国地质勘探调查局)提供的地震事件自动化报告。
[url]ftp://hazards.cr.usgs.gov/maps/sigeqs/20110516/[/url]
ggplot中虽然可以通过jpeg()参数进行设置,但是依旧无法适应在单一图片上显示较多图表的效果,一般超过24张图表,图表就被压缩了,即使放大也无法看清。我的目的是达到能在一张图片上显示80张左右的图表,因为我这边可以使用大型显示设备。
回复 第6楼 的 zggjtsgzczh:专业,搬个板凳学习
回复 第6楼 的 zggjtsgzczh:
没有更多接触过政府提供的社会科学数据,前面的内容不便评论,就回答一下最后的问题。
原生图形设备是有极限的,可以先逐个生成 JPEG 小图,然后调用 ImageMagick 一类的命令行工具拼接起来。
或者先生成矢量的(除了卫星地图,其他图形应该都可以画矢量的)PDF 格式,再用 ImageMagick 转换成 JPEG 格式。300 DPI 需要调整 -density
之类的大概两三个参数。
如果原生的 PDF / JPEG 设备不行,还可以试试 Cairo / cairoDevice 提供的设备。
回复 第8楼 的 肖楠:
多谢指教。画图包太多,都不知道选哪个好了,画图和编程语言这个东东关键还在于熟练。
回复 第8楼 的 肖楠:
您知道ggplot2中文版什么时候面试吗?
回复 第10楼 的 wuxian2r:
我不是很清楚,据线报应该是快了: http://weibo.com/1869170057/zczOrBAJN
这个需要 cc @cloud_wei
回复 第10楼 的 wuxian2r:我知道,快了。过年回家后就好了。
回复 第12楼 的 cloud wei:非常感谢。年后就可以网购到这书了是吧?
回复 第8楼 的 肖楠:
如你所说,我这边就是使用ggplot循环输出单指标单图或多指标单图,而后使用imagemagick的montage命令进行合并,这样有利于纵览且更加适合于相互切换,同时不会在放大时清晰度失去控制。只是由于我的系统不支持x-server所以无法使用其display命令,故只能使用acdsee命令行模式或IrfanView命令行模式,小遗憾。至于pdf,他比较适合于出版物。当然矢量绘图也有其优点,就是切换起来不是太灵活。
对于我前面的帖子,其实更多的是涉及数据组织方面的一些看法,可能大多数人都是使用已经准备好的数据库,比如一些大学或研究机构购买的数据库。而对于商业机构在使用数据时就比较复杂了,所以适当的对数据的抱有一点警惕性会比较好。对于统计,个人认为还是一个系统工程,如果到了主导课题项目的时候就会发现统计应是一种表述的构建,每一个因素都将导致表述的完整性与准确性。