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
-应为黑色)吗?此答案可能有助于: