爲了訪問我的服務器,我不得不使用一個沒有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