Ich versuche, die folgende Handlung in Julia mit Gadfly zu erstellen:tick Einstellung mit logarithmischer Skala Abstand in Gadfly
Example plot http://oak.snr.missouri.edu/silviculture/tools/density.png
Ich habe einig vorhandenen R-Code, der für diesen als Teil eines eine leere Basis schafft größere Plotting-Funktion mit Matplot mit dem Parm log = 'xy' was zu korrekt verteilten Ticks führt.
...matplot(tpa, qmd, ylab = "Quadratic Mean Diameter",
xlab = "Trees per acre", type = "n",
log = "xy", xlim = c(1,1200),
ylim = c(1, 40),main ="")...
Julia Der Code I haben derzeit ist
Using Gadfly
plot(x=[1],y=[1],
Scale.x_log, Scale.y_log,
Scale.x_continuous(minvalue=1,maxvalue=1200),
Scale.y_continuous(minvalue=1,maxvalue=40),
Guide.xticks(ticks=[1,5,10,50,100,500,1000]),
Guide.YTicks(ticks=[1,2,5,10,20]),
Guide.XLabel("Trees per acre"), Guide.YLabel("Quadratic Mean Diameter"),
Theme(grid_color=colorant"black"),
Geom.point)
die die Zecken zu den richtigen Werten erzeugt, aber der Abstand ist, aus in den unteren Werten resultierende aufeinander kondensiert wird. Ich habe versucht, das Scale.x_log zu ändern und das Argument nach dem kontinuierlichen Argument zu verschieben, aber ich kann die gewünschten Achsen aus dem Beispieldiagramm nicht neu erstellen.
Irgendwelche Ratschläge, wie ich die logarithmischen Achsenparameter anpassen kann, um die obige Grafik zu erstellen?
Wäre dies einfacher mit einer anderen Grafikbibliothek dafür? Ich wähle Gadfly, da ich mit der ggplot-Syntax vertrauter bin, aber ich habe in meinem googling immer wieder plots() und die Pyplot() -Pakete gesehen.
EDIT/ARBEITSCode:
Ich habe es funktioniert, war der Knackpunkt das Protokoll der gewünschten Haltepunkte passieren. Vielen Dank an Felipe für die Lambda-Funktion, mir war nicht bekannt, wie diese funktionierte.
myxticks=log([1,5,10,50,100,500,1000])
myyticks=log([1,2,5,10,20])
plot(x=[1], y=[1],
Geom.point,
Scale.x_log(labels=d-> @sprintf("%d",e^d)),
Scale.y_log(labels=d-> @sprintf("%d",e^d)),
Guide.xticks(ticks=myxticks),
Guide.yticks(ticks=myyticks)
)
Noch kein Glück in Julia, aber ich habe eine ggplot Version in R Arbeits Der Abstand wurde voreingestellt, nachdem ich die Pausen hinzugefügt und die Achsenskalierung geändert hatte. ggplot (x = 5, y = 5) + geom_blank() + scale_x_log10 (Grenzen = c (1,1200), c = Pausen (1,5,10,50,100,500,1000)) + scale_y_log10 (Grenzwerte = c (1,40), Brüche = c (1,5,10,20,40)) – Casey