根据数据集中的状态更改R绘图点的颜色

时间:2013-11-19 11:45:33

标签: r colors functional-programming

我一直在使用包含变量的数据集:名称(用于太阳能电池板阵列工厂),年份完成和状态(完成,不完整和正在进行中)。我创建了一个带有“名称”和“完成年份”数据点的图表,但我想根据其“状态”(完整,不完整,正在进行中)为每个数据点着色

我尝试使用此功能,但无济于事

fill_colors <- c()
for (m in 1:length (solar$Status)) {
if (solar$Status[m] == "completed") {
    fill_colors <- c(fill_colors, "#F2F0CE")
} else {
    fill_colors <- c(fill_colors, "#cccccc")
}
}

以下是数据集的示例 - State Name Year.completed Status
1 CO Alamosa WTF 2008 completed
2 CO Arvada Ralston Water Treatment Plant 2008 completed
3 CO Rifle Pump Station 2008 completed
4 CO NREL Mesa Top PV Project 2008 completed
5 AZ Pima County Wastewater 2011 completed

以下是可视化在其当前状态下的样子 https://www.dropbox.com/s/u5x3upwe3tre5qh/line_plot.jpg

https://www.dropbox.com/s/pxmxgxcm0oefhww/line_plot.jpg

继承我的情节命令澄清:

plot(solar$Name, solar$Year.completed, ylim=c(1990, 2025), xlim=c(1, 213), yaxt="n", xaxt="n", col=as.factor(solar$Status))
axis(1, at=1:length(unique(solar$Name)), labels=unique(solar$Name), cex.axis=0.5, las=2)
axis(2, at=1990:2025, labels=1990:2025, cex.axis=0.5, las=2)
points(solar$Name, solar$Year.completed, ylim=c(1990, 2025), yaxt="n", xaxt="n", type="h", pch="10")

2 个答案:

答案 0 :(得分:1)

试试这个:

plot(solar$StateName, solar$YearCompleted, col=as.factor(solar$Status))

答案 1 :(得分:1)

首先,检查因子的顺序。

as.factor(solar$Status)
> Levels: a b c

说我想要一个 - &gt;绿色,b - &gt;黄色,c - &gt;红色。使用以下选项设置调色板值:

palette(value=c('green','yellow','red'))

它将打开一个绘图窗口。输入您的绘图命令,它将按照您设置的调色板的顺序为每个因子着色(如果您设置的数量少于因子水平中包含的数量,它将回收颜色)。

plot(solar$StateName, solar$Year.completed, col=as.factor(solar$Status))