Analizlerimde görselliği artırmak için çizgeler kullanmaya başlamıştım. İnternetteki online araçları kullanıyordum ama biraz uzun oluyordu. Aşağıdaki gibi kolay bir şekilde çizgisel çizgileri yapıverdim.
auto temp = "0.000178838 11:15:6&0.0001697 11:15:8&0.000179625 11:15:10&0.00017345 11:15:14&0.000181844 11:15:16";
int dakkaFarkı( string sol, string sag )
{
return (sol.split(":")[0].to!int - sag.split(":")[0].to!int)*24*60 + (sol.split(":")[1].to!int - sag.split(":")[1].to!int)*60 + (sol.split(":")[2].to!int - sag.split(":")[2].to!int);
}
void çiz()
{
double[] array = temp.split("&").map!(a => (a.split(" ")[0].to!double*1000)).array;
string[] zamanlar = temp.split("&").map!(a => a.split(" ")[1]).array;
int[] dakkaFarkları;
for (int i = 0; i < zamanlar.length; i++ )
{
dakkaFarkları ~= dakkaFarkı( zamanlar[i], zamanlar[0]);
}
auto gg = zip(array, dakkaFarkları).map!((a) => aes!("x", "y")(a[1], a[0]))
.geomLine
.putIn(GGPlotD());
gg = "Price".yaxisLabel.putIn(gg);
gg = Axis(0, dakkaFarkları.back() - dakkaFarkları.front()).adjustTickWidth(dakkaFarkları.back() - dakkaFarkları.front()).putIn(gg);
gg.save("function2.png");
}
void main()
{
çiz();
}
Kullanımı kolay olsa bile 1 saat arayıp y ekseni x eksenin iki katı olsun diyemedim. Fonksiyonları çok acayip geliyor bana.
Örneğin ggplotd'nin axis.d dosyasından :
mixin( xy( q{auto axisRange( double min, double max )
{
AxisFunction func = ( Axis axis ) { axis.min = min; axis.max = max; return axis; };
return func;
}} ) );
bu mixin sayesinde anladığım kadarıyla xaxisLabel ve yaxisLabel gibi fonksiyonlar çalışıyor x ve y'den bağımsız olmak üzere. Ama bu C'nin ön işlemci komutlarına benzettim. Yanılıyor olabilirim ama buda anlaşılabilirliği çok az demek değil mi ?
dlang.learn'e şunu sordum cevap bekliyorum: https://forum.dlang.org/thread/jqkpqxlmjxpitvekvfij@forum.dlang.org
Hayırlısı bakalım
Erdem
Not : Arkadaşlar iş , aile ve ana projemin yoğunluğundan mangalaya bakamıyorum afedersiniz.
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]