我想在R中为我的情节添加色标,但我真的不知道怎么做。我使用了rgl-package。
你能帮助我吗? 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")
答案 0 :(得分: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]
中的原始颜色定义只定义了一种颜色。