2017-02-24 26 views
0

我想在R中为我的情节添加一个色阶,但我真的不知道该怎么做。我使用了rgl-package。 你能帮我吗?随着legend3d它总是说:rgl - 色阶

说法 “传奇” 缺失,没有违约

非常感谢您!

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

您不会向我们展示您用于'legend3d'的参数。这给出了一个图例,但可能不是你想要的那个......'legend3d(“topright”,col = 1:4,legend = letters [1:4],pch = 16)''。 – user2554330

回答

1

它看起来像您有定义和使用的颜色defintions问题:

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]你原来的颜色定义仅仅定义一个单一的颜色。

+0

我的情节已经着色,我只是想添加一个像图例一样的情节,旁边的情节。 – Bobby23

+0

@ Bobby23,更新了我的答案和传说。 – Dave2e