R的ASCII绘图函数

时间:2013-02-06 18:40:16

标签: r text graphics data-visualization

为了访问我的服务器,我被迫使用没有X窗口的旧文本终端应用程序。我要做的最好的事情是emacs / ESS。

通常,我希望制作直方图和散点图等基本图,而不必经历将文件传输到带图形显示的计算机的麻烦。

是否有基于文本终端的R图形库?

1 个答案:

答案 0 :(得分:23)

有很多事情可以做些什么。默认R中有stem,有this scat个绘图函数,但最重要的是,CRAN上的包txtplot可以进行散点图,箱线图,条形图,密度跟踪,acfs和plots曲线(如curve函数... kinda)。

我偶尔只需要它 - 但如果我试图按照我有时需要的方式传达纯文本图形的粗略概念,那么它就可以节省生命。

在过去,我写了一段简短的R代码,可以在非常快的时间内制作理货风格的ascii图形(如侧面条形图或茎叶图,数字由符号代替,这解决了问题我但是我没有保留它,因为干主要覆盖那个领域。

当然,'table'工具会产生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 plot:

 > 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

你有很多报道。