【发布时间】:2014-07-06 14:02:34
【问题描述】:
我正在尝试使用以下代码绘制填充矩形 -
tplot.old <- ggplot() +
geom_rect(data=t.df,mapping=aes(xmin=xa, xmax=xb, ymin=ya, ymax=yb, fill=Train)) +
ylab("Cars per week") + xlab("Miles") + ggtitle(old.title) +
theme(axis.text.x = element_text(angle=45,size=5,hjust=1), axis.text=element_text(size=5), axis.text.y = element_text(size=5), title=element_text(size=5), legend.text=element_text(size=5)) +
scale_fill_manual(values=color_values) +
scale_x_continuous(breaks=plot.stns$Avg_Miles,labels=plot.stns[,"City_Name"]) +
coord_cartesian(xlim=c(0,1700),ylim=c(0,500))
t.df 看起来像这样:
Train xa xb ya yb col
a MHKNP 407 1594 0 22.806452 red
b MPDNP 407 1594 0 9.258065 darkgreen
cd MHKRO 407 1594 0 5.258065 orange
和plot.stns:
Avg_Miles City_Name
1 0 EUGENE
4 15 BLAKESLEEJCT
12 64 LONGVIEWJCT
25 118 ALBINA
45 306 HINKLE
当我在控制台上以交互方式绘制时,这似乎有效,但在 for 循环中会出现此错误 -
错误:提供给连续刻度的离散值
颜色值:
MHKNP MHKNPB MHKPC MHKRO MPCGR MPSHK
"red" "green" "blue" "maroon" "orange" "black"
QCONP QPCNPP MPDNP
"magenta" "skyblue" "darkgreen"
这在某种程度上与scale_x_continuous 相关(当我删除它时它不会给出错误),但我无法弄清楚这里有什么问题。有什么想法吗?
【问题讨论】:
-
你还没有发布循环。在您使用时发布一些数据。该语法如何不会给您带来错误?您应该在图层末尾保留
+s,以便添加更多 -
@rawr 更正了格式。循环只是在每次迭代中创建 t.df。已经发布了我在这里使用的几个数据框。您缺少哪条数据?
-
你看过你的 x 变量的类了吗?当它们不是数字或整数时,这就解释了为什么您会收到此错误消息。
-
它们是“整数”类。甚至尝试将其转换为数字 - 不起作用。
-
color_values 对象在哪里?