2016-07-20 13 views
0

私は次のようになりますdata.frameという名前df.orderedありますこのグラフの特定の部分に色を付けるにはどうすればいいですか?

jpeg("test3.jpg", 700,700) 
plot(df.ordered$gvs, pch = 19,) 
axis(1, at=1:52, labels=df.ordered$labels, las=2) 
dev.off() 

グラフは

次のようになります。私はSnoramから次のコードを使用してグラフを行った

   gvs order   labels color 
1 -2.3321916  1   Adygei  1 
13 -0.8519079  2   Basque  1 
46 -0.9298674  3   French  1 
47 -2.8859587  4   Italian  1 
2 -1.4996229  5   Orcadian  1 
9 -1.5597359  6   Russian  1 
48 -1.4494841  7  Sardinian  1 
14 -2.4279528  8   Tuscan  1 
15 -3.1717421  9   Bedouin  2 
22 -0.5058627 10   Druze  2 
39 -2.6491331 11   Mozabite  2 
23 -0.7819299 12  Palestinian  2 
24 -1.4095947 13   Balochi  3 
10 -1.2534511 14   Brahui  3 
3 1.7958170 15   Burusho  3 
25 2.2810477 16   Hazara  3 
16 -0.9258497 17   Kalash  3 
26 -0.9007551 18   Makrani  3 
4 2.5543214 19   Pathan  3 
27 2.6614486 20   Sindhi  3 
17 -1.2207974 21   Uygurf  3 
40 2.3706977 22  Cambodian  4 
28 -0.9441980 23    Dai  4 
18 -1.0325107 24    Daur  4 
49 -0.7381369 25    Han  4 
41 -2.7590587 26   Hezhen  4 
50 -0.5644325 27   Japanese  4 
44 -0.8449225 28    Lahu  4 
29 -0.7237586 29    Miao  4 
30 -0.9452944 30   Mongola  4 
11 -0.1625003 31    Naxi  4 
31 -1.2035258 32   Oroqen  4 
5 -2.7758460 33    She  4 
32 -0.7703779 34    Tu  4 
12 -1.0265275 35   Tujia  4 
45 -1.1163019 36    Xibo  4 
19 -3.2102686 37   Yakut  4 
42 -0.9614190 38    Yi  4 
6 -1.9659984 39  Colombian  5 
51 -0.9195156 40  Karitiana  5 
7 2.1239768 41    Maya  5 
33 -3.0895998 42    Pima  5 
20 -0.9377928 43   Surui  5 
43 -1.6961014 44  Melanesian  6 
34 -0.7037952 45   Papuan  6 
35 -1.9311354 46  BantuKenya  7 
8 -1.8515908 47 BantuSouthAfrica  7 
21 -1.7657017 48  BiakaPygmy  7 
36 -0.5423822 49   Mandenka  7 
37 -1.6244801 50  MbutiPygmy  7 
38 -0.9049735 51    San  7 
52 2.0949378 52   Yoruba  7 

ここで、色の列に基づいてグラフを色分けしたいと思います。グラフ上にプロットされた各点について、私は、ドットがカラー列と同じカラーグループ内の点と同じ色になるようにしたいと思います。たとえば、最初の8点を青(色の列= 1)、次の4つの点をオレンジ(色の列= 2)にします。これがどのように行われるのか誰にも分かりますか?私のドットカラー/軸の色がどのように見えるかの例は、本書のFigure 5 http://journals.plos.org/plosgenetics/article?id=10.1371/journal.pgen.1004412にあります。誰も私のx軸を0で始めるのを奇妙に取り除く方法を知っていますか?

答えて

1
# This will colour based on the number, but they may not be the colours you want. 
plot(df.ordered$gvs, pch = 19, col = colors()[df.ordered$color], xaxt="n") 

各番号に特定の色がある場合は、番号を色の文字列に変更します。例えば

df.ordered$color <- as.factor(df.ordered$color) 
levels(df.ordered$color) <- c("red","orange" ... etc) 
## Not sure if you need the as.character here, but might as well for good measure 
plot(df.ordered$gvs, pch = 19, col = as.character(df.ordered$color), xaxt="n") 

xaxt = "n"はあなたのx軸を修正するために探していたコードです。プロットの後で軸を宣言しているので、plot()にプロットされたx軸を削除する必要があります。

追加の考慮事項。とにかく軸を抑制しているためaxis()プロット標準軸が、私は角度の付いたx軸をお勧めかもしれません:

## Srt will turn your labels by the number of degrees declared, making them easier for you to read. 
## Be sure to set your y to a position below the bottom of your y-axis, may take some toying with. 

text(x = 1:52, y = -4, labels=df.ordered$labels, srt=45, xpd=T) 
+0

これは素晴らしい作品!彼らのドットと同じ色にラベルを付ける方法はありますか?現在のグラフは次のようになります:http://imgur.com/a/0pd2e – Evan

+2

'axis()'も 'col'引数を持ちます。 – Badger

+0

'col'引数で' axis() 'を試しましたが、うまくいきませんでした。私は 'text()'オプションを試してみたいと思いますが、私はそれを使って目盛りを失うのが好きではありません。/ – Evan

関連する問題