2016-06-08 10 views
2

ich herausgefunden, wie ein Liniendiagramm mit einer asymmetrischen „Band“ plotten um es mit dem Paket „Hornisse“ und dem folgende CodeLiniendiagramm mit asymmetrischer Band mit Julia-Package „Plots“

x=collect(-10:10); 
y=[i^2 for i in -10:10]; 
ymin = y-5; 
ymax = y+10; 
using Gadfly 
plot(x=x, y=y, ymin=ymin, ymax=ymax, Geom.smooth, Geom.ribbon) 

(Dies wurde in this question beschrieben.)

enter image description here

Nun möchte Ich mag das gleiche tun mit der plot Funktion des „Plots“ -Paket. Es gibt Optionen ribbon und fillrange (siehe http://plots.readthedocs.io/en/latest/examples/pyplot/#layouts-margins-label-rotation-title-location), aber ich konnte nicht herausfinden, wie man sie benutzt. Ist es möglich, einen solchen Plot mit dem "Plots" -Paket zu erstellen und wenn ja, wie?

Antwort

2

Bis ich eine neue Version von RecipesBase und Plots markieren, die Sie benötigen, um:

Pkg.checkout("Plots") 
Pkg.checkout("RecipesBase") 

Jetzt Ihr Beispiel zu reproduzieren, könnten Sie tun:

using Plots; pyplot(border=false) 
x = -10:10 
y = x .^ 2 
plot(x, y, ribbon=(5,10), fillalpha=0.2) 

plt

Das Band Arg könnte viele Formen annehmen:

plot(x, y, ribbon = 5) # both sides are 5 
plot(x, y, ribbon = 1:3) # both sides cycle through 1:3 
plot(x, y, ribbon = (5, 1:3)) # bottom is 5, top cycles 1:3 
+0

Ich habe es mit 'Pkg.checkout' versucht. Mit GR bekomme ich: "MethodError: convert hat keine Methode zum Konvertieren (:: Type {Float64}, :: Array {Float64,1})", 'gadfly()' liefert eine Verwarnungswarnung. Auch mit 'plotly()' funktioniert es nicht ("fillrange ignored"). Wenn es nur mit PyPlot funktioniert, ist das "Plots" -Paket für mich derzeit nicht die richtige Wahl. Aber wie auch immer, vielen Dank für Ihre Antwort. – esel

+0

Dies funktioniert derzeit mit pyplot und gr Backends, ohne Pkg.checkout. –