Ргл - цветовая гамма

Я хочу добавить цветовую шкалу к моему графику в R, но у меня действительно нет идеи, как это сделать. Я использовал rgl-пакет. Вы можете мне помочь? С legend3d это всегда говорит:

аргумент "легенда" отсутствует, по умолчанию нет

Большое спасибо!

library(rgl)


### als erstes wird ein Fenster geöffnet, in dem der Plot später dargestellt wird
### Vektor ist c(Position x, Position y, Größe x, Größe y)
open3d(windowRect=c(50,50,1000,800))

### einlesen der Variablen, bisher kein Weg gefunden das über Excel zu tun, nachbessern!
### m_dot ist X, n ist y, delta_p ist z
m_dot = c(0.1,0.3,0.5,1.0)
n = c(-100,-30,30,100,250) 
delta_p<-  c(-14.2421875,-0.875,1.8984375,0.1640625,-11.1328125, #hier 0.1 kg/s eintragen
             -21.3203125,2.4765625,11.765625,14.9453125,3.8125,
             -20.8671875,12.6328125,25.296875,39.2109375,34.765625,
             6.6640625,52.1328125,78.1953125,109.078125,157.078125)

### Farben definieren
palette <- colorRampPalette(c("blue", "green", "yellow", "red"))
col.table <- palette(256)
col.ind <- cut(delta_p, 256)

### Plotten des Bildes über persp3d (library(rgl))
### x_lab und z_lab bleiben zunächst frei, damit sie später angepasst werden können
### das gleiche gilt für die Achsen, sie sollen manuelle angepasst werden
persp3d(m_dot, n, delta_p, col=col.table[col.ind],
        xlab="",ylab="Drehzahl [1/min]",zlab="",aspect=c(1,1,1),
        xlim=c(0,1.0), zlim=c(-50,200),
        #box=FALSE
        #legend=TRUE,
        axes=FALSE
        )
### die fehlenden Achsenbeschriftungen werden hinzugefügt
### "edge" definiert die Position der Achse ### "line" definiert den Abstand zur Achse
mtext3d("Delta_p_tot [Pa]",edge="z-+",line=2)
mtext3d("Massenstrom [kg/s]",edge="x--",line=2.7)

### Hinzufügen der Achsen
axes3d(edges=c("x--","y--","z-+"))

### Hinzufügen einer Box um den Plot
rgl.bbox(color="white") 
         #emission="grey50")



### um den Plot in die richtige Position zu bringen, wird das Bild um die Z-Achse gedreht
play3d(spin3d(axis=c(0,0,1),rpm=4),duration=2)
### es wird ein Bild im lokalen Ordner "Dokumente" oder im Arbeitsordner gespeichert
rgl.snapshot("3dplot.png",fmt="png")

1 ответ

Похоже, у вас есть проблемы с определением и использованием определения цвета:

col.table <- colorRampPalette(c("blue", "green", "yellow", "red"))(11)

persp3d(m_dot, n, delta_p, col=col.table[cut(delta_p, seq(-50, 200, 25))],
        xlab="",ylab="Drehzahl [1/min]",zlab="",aspect=c(1,1,1),
        xlim=c(0,1.0), zlim=c(-50,200),
        box=FALSE,
        legend=TRUE,
        axes=FALSE
)
legend3d("topleft", legend=levels(cut(c(-50,200), 10)), col=col.table, pch=20)
mtext3d("Delta_p_tot [Pa]",edge="z-+",line=2)
mtext3d("Massenstrom [kg/s]",edge="x--",line=2.7)

axes3d(edges=c("x--","y--","z-+"))

Ваше оригинальное определение цвета в функции plot3d col=col.table[col.ind] только что определил один цвет.

Другие вопросы по тегам