【问题标题】:R plot, actual Row values instead of row numbersR图,实际行值而不是行号
【发布时间】:2013-11-18 19:46:33
【问题描述】:

我有一个数据集,其中包含太阳能电池板阵列的名称、它们的完成日期和位置(经度/纬度)。

我创建了一个 rplot,x 轴为完成时间,y 轴为每个数组的名称。 这就是问题所在 - 不显示实际名称,但每行的数字名称是。有没有办法让 y 轴上列出的名称而不是数字? ![名字应该显示在y轴上,年份显示在x轴上]

这是我用来制作 rplot 的代码:

plot(solar$Year.completed, solar$Name, xlim=c(1990, 2025))

我也在考虑增加更多的粒度(如果这甚至是 x 轴的一个词)

感谢任何可以帮助解决此问题的人。

剧情如下:

【问题讨论】:

  • 快速提示以提高快速回答的机会,如果您提出问题reproducible,人们可以更顺畅地提供帮助,这样人们就不必费心生成数据展示它是如何实现的。
  • 看看?axis中的例子
  • 我想我不明白 "names" 在 y 轴上的含义。你至少能告诉我们solar$Name 的样子吗?如果它们不是连续数据而是角色名称,那么这个情节似乎有点奇怪......
  • 您要的是水平方向的条形图吗?

标签: r time-series scatter-plot name-value


【解决方案1】:

是的,正如大家所说,如果您可以包含数据,这会容易得多。但可能你想要的是这样的:

plot(solar$Year.completed, solar$Name, xlim=c(1990, 2025), yaxt="n")
axis(2, at=1:length(unique(solar$Name)), labels=unique(solar$Name), cex.axis=0.5, las=2)

在第一行,yaxt="n" 去掉了默认的 y 轴标签

第二行为 solar$Name 的每个唯一值创建一系列点

2(第一个参数)表示它是 y 轴

cex.axis 减小字体大小(因为看起来你有很多点)

las-2 使标签垂直(同样你可能需要空间)

如果您想要 x 轴上的粒度,您可以执行类似的操作(即添加 xaxt="n" 并创建自定义 x 轴:

plot(solar$Year.completed, solar$Name, xlim=c(1990, 2025), yaxt="n", xaxt="n")
axis(2, at=1:length(unique(solar$Name)), labels=unique(solar$Name), cex.axis=0.5, las=2)
axis(1, at=1990:2025, labels=1990:2025, cex.axis=0.7, las=2) 

【讨论】:

  • barchart(stuff, horiz=TRUE) 会不会更容易些?
  • 这是我的第一次尝试,它运行良好,但它看起来好像所有项目都是同时开始的。下次我发布问题时,我会确保添加我的数据。
  • 我对使用 R 和整体数据集非常陌生 - 非常感谢您的帮助。
猜你喜欢
  • 2015-10-13
  • 2021-12-16
  • 1970-01-01
  • 2015-02-07
  • 2020-01-07
  • 2011-10-18
  • 1970-01-01
  • 2021-10-17
  • 1970-01-01
相关资源
最近更新 更多