Как нарисовать карту плотности тепла на тройном участке в R? - PullRequest
0 голосов
/ 24 марта 2019

Heads up Я R noob, так обнажите, пожалуйста!

Я пытаюсь определить области, в которых расположено наибольшее количество точек данных, с использованием тепловой карты плотности.

Вот как выглядит сюжет

Что я должен добавить к этому коду, который я сделал до сих пор (я, очевидно, перечислил меньше точек данных), чтобы применить эту «тепловую карту»?

par(mfrow=c(1, 2), mar=rep(0.3, 4))
TernaryPlot(atip = "Red", btip = "Green", ctip = "Blue", alab="Redder\u2192", blab="Greener \u2192", clab="Bluer \u2190",
            point='Up', lab.cex=0.8, grid.minor.lines = 0,
            grid.lty='solid', col=rgb(0.9,0.9,0.9), grid.col='White', 
            axis.col=rgb(0, 0, 0), ticks.col=rgb(0, 0, 0),
            padding=0.08)
data_points <- list(
  c(0.89,0.88,0.78),
  c(0.98,0.96,0.92),
  c(0.6,0.52,0.28),
  c(0.88,0.9,0.85),
  c(0.96,0.87,0.6),
  c(0.63,0.53,0.29),
  c(0.92,0.85,0.09),
  c(0.84,0.87,0.87),
  c(0.93,0.88,0.88),
  c(0.98,0.76,0.71)
)
AddToTernary(points, data_points, bg=vapply(data_points, function (x) rgb(x[1], x[2], x[3], 1, maxColorValue=1), character(1)), pch=25, cex=0.8)
AddToTernary(text, data_points, names(data_points), cex=0.8, font=2)

Извините за то, что вы так глупы, очень новички во всем этом, узнав много благодаря этому сайту!

1 Ответ

0 голосов
/ 24 марта 2019

Функция TernaryPlot из пакета Ternary создает и оформляет пустой тернарный график.Если вы хотите показать свои данные, вам нужно использовать функцию TernaryPoints:

TernaryPlot(atip = "Red", btip = "Green", ctip = "Blue", alab="Redder\u2192", blab="Greener \u2192", clab="Bluer \u2190",
        point='Up', lab.cex=0.8, grid.minor.lines = 0,
        grid.lty='solid', col=rgb(0.9,0.9,0.9), grid.col='White', 
        axis.col=rgb(0, 0, 0), ticks.col=rgb(0, 0, 0),
        padding=0.08)

TernaryPoints(data_points)

. Вы получите следующий график:

ternary plot with ternery library

Другой вариант - использовать библиотеку vcd:

library(vcd)

# convert data points into a matrix
data_points = matrix(unlist(data_points), ncol=3, byrow=T)
ternaryplot(x=data_points)

Используя vcd, вы должны получить следующий график:

ternery plot with vcd

...