2017-05-11 29 views
0

我看起來像這樣的數據:ggplot指定x和y正確

 ISIN 2016-01-05 2016-01-11 2016-01-18 2016-01-25 2016-02-01 2016-02-08 2016-02-15 2016-02-22 2016-02-29 2016-03-09 2016-03-14 2016-03-24 
1 KZK2KY030871 91.1165 91.2097 91.3173 91.2241 91.4101 91.0851 91.0979 89.6833 89.4669 89.5396 90.4002 90.4249 
2 KZK2KY050443 89.9079 90.0086 90.1254 90.0408 90.2386 89.9094 89.9315 88.4538 88.2538  88.345 89.2652  89.305 
3 KZK2KY050450 91.1218 91.2063 91.3048 91.1968  91.388 91.0072 91.0096 89.3449 89.1223 89.1887 90.2121 90.2334 
4 KZK2KY050468  90.957 91.0395 91.1362 91.0248 91.2197 90.8183 90.8187  89.05 88.8253 88.8884  89.98 89.9995 
5 KZK2KY050476 88.7343 88.7973 88.8785 88.7521 89.0199 88.3094  88.311 84.7608 84.5707 84.6103 86.8479 86.8885 
6 KZK2KY050484 89.8963 89.9224 89.9707 89.8465  90.168 89.1252 89.1378 83.4505 83.3609 83.3898 86.7662 86.8651 

ISIN下一個產品的名稱和每個產品的在列給定的日期值。

我想將它們全部繪製在一張圖中 - 將會有多條線,理想情況下我想單獨使用某些產品的發光顏色。我試圖「融化」的數據,並得到了以下結構:

 ISIN  variable value 
1 KZK2KY030871 2016-01-05 91.1165 
2 KZK2KY050443 2016-01-05 89.9079 
3 KZK2KY050450 2016-01-05 91.1218 
4 KZK2KY050468 2016-01-05 90.957 
5 KZK2KY050476 2016-01-05 88.7343 
6 KZK2KY050484 2016-01-05 89.8963 
7 KZK2KY050492 2016-01-05 89.8838 
8 KZKDKY060074 2016-01-05 90.334 
9 KZKDKY060082 2016-01-05 87.412 
10 KZKDKY060090 2016-01-05 86.9471 

並試圖繪製的圖形與ggplot

ggplot(BDmelt, aes(x = variable, y = ISIN, color = ISIN)) + 
    theme_bw() + 
    theme(legend.position="none") + 
    geom_line() 

我來到這裏是 - 沒有線條可言。我沿着y-axis看到每個ISIN。我的x-axis值太狹窄 - 它們只是一條黑線。我想要得到一個所有行(y-axis值從0到150不等)的情節,也能夠有一個有意義的步長爲x-axis,以便我可以看到日期。請幫忙。

添加此位進行或多或少容忍: theme(axis.text.x = element_text(angle = 90, hjust = 1), axis.text = element_text(size=5)) +

+0

我假設你只是顯示第二個數據框的第一行,因爲重塑第一行會產生更大的一行。 – neilfws

+0

這是正確的。實際長度是1000+ – AK88

回答

2

你的第一個問題是,ISIN不是數字,因此不會做出了巨大的y軸變量:你需要使用「值」。而你的第二個問題是你需要通過ISIN進行分組和彩色。像這樣的東西應該讓你開始:

ggplot(BDmelt, aes(variable, value)) + 
    geom_line(aes(color = ISIN, group = ISIN)) + 
    theme_bw() + 
    theme(legend.position = "none") 

enter image description here

你可能也想在「變量」一欄的日期格式轉換,這樣就可以使用scale_x_date格式化x軸。

+0

謝謝! '小組'做了詭計。我也得到了'> str(BDmelt $ variable) 因子w/71級別「2016-01-05」,「2016-01-11」,..:1 1 1 1 1 1 1 1 1 1 ... '我應該在熔化的數據中轉換日期然後繪製圖表? – AK88

+1

最好不要有因素。如果您使用'read.table'這樣的東西來生成原始數據框,請始終使用'stringsAsFactors = FALSE'。否則,您需要稍後使用'as.character()'進行轉換。你應該能夠使用類似於'BDmelt $ variable < - as.Date(BDmelt $ variable,「%Y-%m-%d」)''的東西來轉換日期。 – neilfws

+0

你可以幫我畫一個在他們的名字中有特定字母的線(例如'KDK' - 應該是黑色的)? – AK88

相關問題