2017-02-24 11 views
0

Rのプロットにカラースケールを追加したいのですが、実際にどのようにアイデアを作成していないのですか?私はrglパッケージを使用しました。 私を助けることができますか? legend3dで、それは常に言う:rgl - カラースケール

引数 "伝説" はなしデフォルト

で、不足しているありがとうございました!あなたは色のdefintionsを定義し、使用して問題が発生しているように見えます

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

:PLOT3D機能col=col.table[col.ind]であなたの元の色の定義は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-+")) 

+0

私のプロットは既に色付けされていますが、プロットの隣に凡例のようなスケールを追加したいだけです。 – Bobby23

+0

@ Bobby23、凡例を追加して私の答えを更新しました。 – Dave2e

関連する問題