为了访问我的服务器,我不得不使用一个没有X窗口的旧文本终端应用程序。我要做的最好的事情是emacs/ESS。R的ASCII绘图函数
通常,我希望制作一些基本的图表,如直方图和散点图,而不必经历将文件传输到带有图形显示的计算机的麻烦。
是否有一个基于文本终端的R图形库?
为了访问我的服务器,我不得不使用一个没有X窗口的旧文本终端应用程序。我要做的最好的事情是emacs/ESS。R的ASCII绘图函数
通常,我希望制作一些基本的图表,如直方图和散点图,而不必经历将文件传输到带有图形显示的计算机的麻烦。
是否有一个基于文本终端的R图形库?
有很多事情可以做点它。有缺省R的stem
,有thisscat
ter plot函数,但最重要的是,CRAN上有包txtplot
,它包含散点图,箱形图,条形图,密度迹线,acfs和曲线图曲线(如curve
函数...有点)。
我只是偶尔需要它 - 但是如果我试图在纯文本中表达一个粗略的想法,就像我有时需要的那样,这是一种挽救生命的方法。
在过去,我写了一小段R代码,可以在很短的时间内制作出统计样式的ASCII图形(如横向条形图或数字替换为符号的茎叶图,这解决了问题我有) - 但我没有保留它,因为干大部分覆盖了该领土。
当然,'表'设施产生ascii输出,可以操纵一些有趣/有用的semigraphical事情。
还有也包ascii
它可以用来呈现各种R对象以类似于Sweave的方式ascii形式 - 方便格式化表等。只是将表格格式化为ascii并不是真正的功能,但您仍然可以通过一些工作和正确的输出格式来获得某些用途。从txtplot
输出样本:
散点图:
> with(cars,txtplot(speed,dist))
+----+-----------+------------+-----------+-----------+--+
120 + * +
| |
100 + +
| * * |
80 + * * +
| * * * |
60 + * * +
| * * * * * |
40 + * * * * * +
| * * * * * * * |
20 + * * * * * * * +
| * * * * |
| * * * |
0 +----+-----------+------------+-----------+-----------+--+
5 10 15 20 25
ACF图:
> txtacf(ldeaths)
+-+--------------+--------------+--------------+--------+
1 + * +
| * |
| * * * * * |
0.5 + * * * * * +
| * * * * * * * * |
| * * * * * * * * |
| * * * * * * * * |
0 + * * * * * * * * * * * * * * * * * * * * * +
| * * * * * * * * * * |
| * * * * * * * * * * |
| * * * * * * * * * |
-0.5 + * * * * * * +
| * * * * |
+-+--------------+--------------+--------------+--------+
0 0.5 1 1.5
密度迹:
> txtdensity(rnorm(100,m=5,s=.1))
+------+----------+----------+----------+----------+-------+
| ***** |
4 + ** *** +
| * *** |
| ** *** |
3 + ** *** +
| *** ** |
| ***** ** |
2 + *** ** +
| *** ** |
| ** ** |
1 + ** *** +
| *** ****** |
| ******** *** |
+------+----------+----------+----------+----------+-------+
4.8 4.9 5 5.1 5.2
箱线图:
> vc <- ToothGrowth[,2]=="VC"
> oj <- ToothGrowth[,2]=="OJ"
> txtboxplot(ToothGrowth[vc,1],ToothGrowth[oj,1])
5 10 15 20 25 30 35
|----+-------+--------+--------+--------+--------+-------+--|
+--------+-----------+
1 -------------| | |------------------
+--------+-----------+
+------------+----+
2 -------------| | |---------
+------------+----+
Legend: 1=ToothGrowth[vc, 1], 2=ToothGrowth[oj, 1]
曲线图:
> txtcurve(sin(pi*x),from=0,to=2)
+--+-----------+------------+------------+-----------+--+
1 + ********* +
| *** ** |
| ** ** |
0.5 + ** ** +
| ** ** |
| * ** |
0 + * ** * +
| * * |
| ** ** |
-0.5 + *** ** +
| ** ** |
| ** *** |
-1 + ********* +
+--+-----------+------------+------------+-----------+--+
0 0.5 1 1.5 2
条形图:
> txtbarchart(as.factor(res),pch="|")
+--+------------+------------+------------+------------+--+
50 + | +
| | |
40 + | +
| | |
30 + | | +
| | | |
| | | |
20 + | | | +
| | | | |
10 + | | | +
| | | | |
0 + | | | +
+--+------------+------------+------------+------------+--+
1 1.5 2 2.5 3
Legend: 1=A, 2=B, 3=C
添加从默认的R图形的stem
功能:
> stem(log(islands,10))
The decimal point is at the |
1 | 1111112222233444
1 | 5555556666667899999
2 | 3344
2 | 59
3 |
3 | 5678
4 | 012
,你有相当多的的覆盖范围。
谢谢格伦,这真棒! –
[here](http://stackoverflow.com/questions/9151884/how-can-i-generate-ascii-graphical-output-from-r) – user189035