如何利用R语言画出三维动画图

Python066

如何利用R语言画出三维动画图,第1张

用cad不是只有画平面图的,是可以画三维立体图的,不过用cad画三维图有点麻烦。你也可以在平面图上画,找个立方体放斜一点看见几条线就是图上画几条线,就可以了。在平面上画出标准的立体图,需要用到机械制图课本上学到的立体图的平面画法,例如正二测、斜二测、正等测等画法。

q1, 首先要确定是barplot还是hist,如果是barplot的话,应该不存在breaks的问题,因为barplot的传入参数是个矩阵;

我假设你要画的是个hist,我偶遇过这个问题,我的理解是hist的breaks的值要能被范围整除才行;比如x=1:200,break=7的话,就只能画出4个柱来,但如果breaks=10就没问题;基本上是这样的,偶尔也有例外;比如break=5就不行....奇怪得很

最后,没办法的办法,就只能用barplot代替hist了,barplot肯定不会有这个问题,统计下hist参数中的分布情况,转换成矩阵,用barplot吧;

q2, 貌似一般都用一组因素把这些类别区分开,我用abcde,表示你的小学,中学...了,比如这样:

a=1:7b=8:10c=c(9,10,11)d=c(40,55)e=100:110f=factor(c(rep(1,sum(length(a),length(b),length(c))),rep(2,sum(length(d),length(e)))))#先用c()生成数组,在转换成factor,其实数组也ok的,不过plot()中两个数组和factor不一样 x=c(a,b,c,d,e)plot(x~f)q3, 就我所知不行;yes或no一定也要是能映射到x,y范围内的点才行;你是想表示分类结果吗?如果是的话,通常用颜色,或者在点旁边的text表示。

q4, 举个例子吧

x=-50:50y=x^2+x+1z=10*abs(x)+1 plot(x,y,type='l')lines(x,z,lty=3)legend(c('type1','type2'), x=-20,y=2500, col=c('black','red'), lty=c(1,3))legend的x和y是legend的左上角,匿名参数是类型名称,col,lty,pch 是对应的颜色,线类型,和点类型。

最后,我现在多用ggplot2,如果不抵触的话可以看看,和R的基础作图包思路不是很一样,但是图很清新的;

如果还有问题,建议把数据集data.frame粘贴几行上来,我也试试;

可视化数据时,网络可以很好展示各个节点之间的关系以及关系的重要性。网络中存在大量的节点和边,因此绘制一个好的网络会有助于信息的解读。networkD3可以自定义网络的各种特征,绘制一个优美的动态网络。

可以使用R包 igraph 构建网络绘制需要的数据,使用 igraph_to_networkD3 函数将数据转换成 networkD3 要求格式的输入数据。

simpleNetwork是networkD3的基础函数,可以快速出图。

绘制网络

forceNetwork有更多的参数,调整参数可以绘制更复杂的网络图。

绘制网络

forceNetwork的数据格式比较麻烦; 尤其是参数Nodes;建议大家使用igraph包 igraph_to_networkD3()网络图所需数据将转换为networkD3数据格式。本文见 #3. 与igraph交互 部分。

调用 igraph 包创建网络图所需数据,igraph_to_networkD3函数转换数据格式, networkD3 绘制图。

参考 networkD3

在 server.R 调用render*Network(*可以是 Simple , Force , Sankey )

在 app.R 文件中调用*NetworkOutput(*可以是 Simple , Force , Sankey )

shiny例子: networkD3-shiny-example

networkD3 :D3 JavaScript Network Graphs from R

networkD3 github

系列文章:

R语言进行网络分析的基础包 igraph

networkD3 绘制动态网络

网络-visNetwork包绘制炫酷的动态网络图

网络-调用R包构建交互式网络可视化的Shiny App