R 用行名和列名绘制矩阵
我从具有行名和列名的文件中读取矩阵中的数据。如何使用 R 绘图函数根据 X 轴上的行名称自动绘制 Y 轴上的所有列系列,并为列名称创建图例。
data = read.csv(file="sample.csv",head=T,row.names=1)
data
ES NQ DJ YAP FCE ESX LFT HS SNI SXF STW CGB
19971006 981.50 NA 8171 NA 3078.0 NA 5371.0 14870 17845 NA 339.9 122.67
19971007 989.50 NA 8232 NA 3071.0 NA 5387.0 14720 17565 NA 334.0 122.65
19971008 989.50 NA 8160 NA 3028.0 NA 5299.0 14880 17630 NA 337.2 122.07
19971009 978.00 NA 8124 NA 2962.0 NA 5264.0 15055 17425 NA 346.8 121.55
# plot ES, NQ, ... series against row-names 19971006,19971007, etc
# create legends for column series ES, NQ, etc..
请注意,它应该能够将行名称 19971006,19971007 视为整数,并在刻度之间创建适当的间隙(例如 1 年、6 个月等)。我尝试了不同的方法,但它变得混乱,并且在绘图时似乎没有好的方法来管理行名称向量。
我应该使用不同的数据结构来表示我的数据吗?
谢谢!
I read a data in a matrix from a file with row and column names. How do I use R plotting functions to automatically plot all the column series on the Y-axis against row-names on the X-axis and create legends for column-names.
data = read.csv(file="sample.csv",head=T,row.names=1)
data
ES NQ DJ YAP FCE ESX LFT HS SNI SXF STW CGB
19971006 981.50 NA 8171 NA 3078.0 NA 5371.0 14870 17845 NA 339.9 122.67
19971007 989.50 NA 8232 NA 3071.0 NA 5387.0 14720 17565 NA 334.0 122.65
19971008 989.50 NA 8160 NA 3028.0 NA 5299.0 14880 17630 NA 337.2 122.07
19971009 978.00 NA 8124 NA 2962.0 NA 5264.0 15055 17425 NA 346.8 121.55
# plot ES, NQ, ... series against row-names 19971006,19971007, etc
# create legends for column series ES, NQ, etc..
Note that it should be able to treat the row-names 19971006,19971007 as integers and create appropriate gap between ticks (such as 1 year, 6 months, etc). I tried different things but it gets messy and there seems to be no good way to manage the row-names vector when plotting.
Should I use a different data structure to represent my data?
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是使用 reshape 和 ggplot2 的解决方案:
,但您可以使用其他图形包。对于多面板版本,可以使用facet_wrap或facet_grid:
这是一个基本图形版本:
here is a solution using reshape and ggplot2:
And for multi-panel version, facet_wrap or facet_grid is available:
And here is a base graphics version: