R ggplot正确指定x和y

R ggplot正确指定x和y,r,ggplot2,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

我得到的数据如下所示:

        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()
我在这里得到的是——根本没有台词。我看到每个ISIN沿y轴
移动。我的
x轴
值太窄了-它们只是一条黑线。我希望得到一个包含所有线条的绘图(
y轴
值从0到150不等),并且能够为
x轴
提供一个有意义的步长,以便我可以看到日期。请帮忙

添加此位使其或多或少可以忍受:
theme(axis.text.x=element\u text(angle=90,hjust=1),axis.text=element\u text(size=5))+

您的第一个问题是ISIN不是数字,所以不是一个很好的y轴变量:您需要使用“value”。第二个问题是,你需要根据ISIN进行分组和着色。像这样的事情应该让你开始:

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


您可能还想将“变量”列转换为日期格式,这样您就可以使用
scale\u x\u date
来格式化x轴。

您的第一个问题是ISIN不是数字,所以不能成为一个很好的y轴变量:您需要使用“value”。第二个问题是,你需要根据ISIN进行分组和着色。像这样的事情应该让你开始:

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


您可能还希望将“变量”列转换为日期格式,以便使用
scale\u x\u date
格式化x轴。

我假设您只显示第二个数据帧的第一行,因为重塑第一行将生成更大的数据帧。这是正确的。实际长度是1000+我假设您只显示第二个数据帧的第一行,因为重塑第一个数据帧会生成更大的数据帧。这是正确的。实际长度为1000+谢谢<代码>组
成功了。我还获得了str(BDmelt$变量)系数w/71水平“2016-01-05”、“2016-01-11”…:1我是否应该转换融化数据中的日期,然后绘制图表?最好不要使用因子。如果使用类似于
read.table
的方法生成原始数据帧,请始终使用
stringsAsFactors=FALSE
。否则,以后需要使用
as.character()
进行转换。您应该能够使用类似于
BDmelt$variable的东西来转换日期。您能帮助我绘制名称中包含特定字母的行吗(例如
KDK
-应为黑色)?这个答案可能会有所帮助:谢谢<代码>组
成功了。我还获得了str(BDmelt$变量)系数w/71水平“2016-01-05”、“2016-01-11”…:1我是否应该转换融化数据中的日期,然后绘制图表?最好不要使用因子。如果使用类似于
read.table
的方法生成原始数据帧,请始终使用
stringsAsFactors=FALSE
。否则,以后需要使用
as.character()
进行转换。您应该能够使用类似于
BDmelt$variable的方法转换日期。您可以帮助我绘制名称中包含特定字母的行(例如
KDK
-应为黑色)吗?此答案可能有助于: