【问题标题】:Coloring Data points by categorical variable按分类变量着色数据点
【发布时间】:2018-03-21 06:51:22
【问题描述】:

我是 R 新手,所以我的问题很简单。我正在尝试创建一个散点图,显示所有国家/地区的数据,然后按人口调整气泡大小并按地区着色。我已经完成了除了着色之外的所有事情。 这是我的代码:

attach(gapminder2)
colors(distinct = FALSE)
radius<-sqrt(gapminder2$Population/pi)
plot(log(`CO2 Emissions per capita`), log(Income), main="PerCapita GDP vs CO2 Emissions by Country", xlab="CO2 Emissions (tons/person)", ylab="Per Capita GDP (US$)")
grid()
symbols(log(`CO2 Emissions per capita`), log(Income), main="PerCapita GDP vs CO2 Emissions by Country", xlab="CO2 Emissions (tons/person)", ylab="Per Capita GDP (US$)", circles=radius, inches=0.25)

所有这些都运行良好并生成以下图表:

GDP vs CO2 graph

在数据集(称为“gapminder2”)中,我有一个变量“Region”。我尝试将其转换为因子变量(Region

【问题讨论】:

  • this answer。尝试将col = gapminder2$Region 添加到plot
  • 好的,我添加了,但收到错误消息:“无效的颜色名称'中东'”。您知道如何将颜色分配给变量中的每个区域吗? @金发三叶草
  • 这不起作用的事实表明 gapminder2$Region 没有被存储为一个因素。尝试做gapminder2$Region &lt;- as.factor(gapminder2$Region) 然后使用@blondeclover 的解决方案。
  • @JimQuirk 好的,谢谢,这有助于获得颜色。现在,问题是它消除了气泡的大小,我想不出一个同时运行颜色和大小的命令。此外,它只做轮廓颜色而不是填充颜色。有什么想法吗?

标签: r colors categorical-data


【解决方案1】:

您可以使用一些图形参数在一个绘图命令中完成所有操作:

plot(
  log(`CO2 Emissions per capita`),
  log(Income),
  pch=16, ## filled in circles
  cex=radius, ## varies the size,
  col=as.integer(as.factor(Region)+1) ## colour by region, skipping black
)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-20
    相关资源
    最近更新 更多