ggplot正确指定x和y

时间:2017-05-11 10:59:45

标签: r ggplot2

我得到的数据如下:

        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下的产品名称以及每种产品'列中给定日期的值。

我想将它们全部绘制在一个图表中 - 会有多重线条,理想情况下我想用一些产品的发光颜色挑出来。我试着“融化”#39;数据并得到以下结构:

      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)) +

1 个答案:

答案 0 :(得分:2)

你的第一个问题是ISIN不是数字,所以不能创建一个很好的y轴变量:你需要使用“value”。而你的第二个问题是你需要通过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轴。