void TForestFire::PlotFire(const TStr& FNmPref, const TStr& Desc, const bool& PlotAllBurned) { TGnuPlot GnuPlot(FNmPref, TStr::Fmt("%s. ForestFire. G(%d, %d). Fwd:%g Bck:%g NInfect:%d", Desc.CStr(), Graph->GetNodes(), Graph->GetEdges(), FwdBurnProb(), BckBurnProb(), InfectNIdV.Len())); GnuPlot.SetXYLabel("TIME EPOCH", "Number of NODES"); if (PlotAllBurned) GnuPlot.AddPlot(NBurnedTmV, gpwLinesPoints, "All burned nodes till time"); GnuPlot.AddPlot(NBurningTmV, gpwLinesPoints, "Burning nodes at time"); GnuPlot.AddPlot(NewBurnedTmV, gpwLinesPoints, "Newly burned nodes at time"); GnuPlot.SavePng(TFile::GetUniqueFNm(TStr::Fmt("fireSz.%s_#.png", FNmPref.CStr()))); }
void TFfGGen::PlotFireSize(const TStr& FNmPref, const TStr& DescStr) { TGnuPlot GnuPlot("fs."+FNmPref, TStr::Fmt("%s. Fire size. G(%d, %d)", DescStr.CStr(), Graph->GetNodes(), Graph->GetEdges())); GnuPlot.SetXYLabel("Vertex id (iterations)", "Fire size (node out-degree)"); TFltPrV IdToOutDegV; for (TNGraph::TNodeI NI = Graph->BegNI(); NI < Graph->EndNI(); NI++) { IdToOutDegV.Add(TFltPr(NI.GetId(), NI.GetOutDeg())); } IdToOutDegV.Sort(); GnuPlot.AddPlot(IdToOutDegV, gpwImpulses, "Node out-degree"); GnuPlot.SavePng(); }
void TGStat::Plot(const TGStatDistr& Distr, const TStr& FNmPref, TStr Desc, bool PowerFit) const { if (Desc.Empty()) Desc = FNmPref.GetUc(); if (! HasDistr(Distr) || Distr==gsdUndef || Distr==gsdMx) { return; } TPlotInfo Info = GetPlotInfo(Distr); TGnuPlot GnuPlot(Info.Val1+TStr(".")+FNmPref, TStr::Fmt("%s. G(%d, %d)", Desc.CStr(), GetNodes(),GetEdges())); GnuPlot.SetXYLabel(Info.Val2, Info.Val3); GnuPlot.SetScale(Info.Val4); const int plotId = GnuPlot.AddPlot(GetDistr(Distr), gpwLinesPoints, ""); if (PowerFit) { GnuPlot.AddPwrFit(plotId, gpwLines); } #ifdef GLib_MACOSX GnuPlot.SaveEps(); #else GnuPlot.SavePng(); #endif }
void TNetInfBs::SaveObjInfo(const TStr& OutFNm) { TGnuPlot GnuPlot(OutFNm); TFltV Objective; for (THash<TIntPr, TEdgeInfo>::TIter EI = EdgeInfoH.BegI(); EI < EdgeInfoH.EndI(); EI++) { if (Objective.Len()==0) { Objective.Add(EI.GetDat().MarginalGain); } else { Objective.Add(Objective[Objective.Len()-1]+EI.GetDat().MarginalGain); } } GnuPlot.AddPlot(Objective, gpwLinesPoints); GnuPlot.SavePng(); }
void TNetInfBs::SaveObjInfo(const TStr& OutFNm) { TGnuPlot GnuPlot(OutFNm); TFltV Objective, Bound; for (THash<TIntPr, TEdgeInfo>::TIter EI = EdgeInfoH.BegI(); EI < EdgeInfoH.EndI(); EI++) { if (Objective.Len()==0) { Bound.Add(EI.GetDat().MarginalBound + EI.GetDat().MarginalGain); Objective.Add(EI.GetDat().MarginalGain); } else { Objective.Add(Objective[Objective.Len()-1]+EI.GetDat().MarginalGain); Bound.Add(EI.GetDat().MarginalBound + Objective[Objective.Len()-1]); } } GnuPlot.AddPlot(Objective, gpwLinesPoints, "NETINF"); GnuPlot.AddPlot(Bound, gpwLinesPoints, "Upper Bound (Th. 4)"); GnuPlot.SavePng(); }
void TGnuPlot::Test() { TFltV DeltaY; TFltPrV ValV1, ValV2, ValV3; for (int i = 1; i < 30; i++) { ValV1.Add(TFltPr(i, pow(double(i), 1.2))); DeltaY.Add(5*TInt::Rnd.GetUniDev()); ValV2.Add(TFltPr(i, 5*i-1)); } for (int i = -10; i < 20; i++) { ValV3.Add(TFltPr(i, 2*i + 2 + TInt::Rnd.GetUniDev())); } TGnuPlot GnuPlot("testDat", "TestPlot", true); GnuPlot.SetXYLabel("X", "Y"); const int id2 = GnuPlot.AddPlot(ValV2, gpwPoints, "y=5*x-1"); const int id3 = GnuPlot.AddPlot(ValV3, gpwPoints, "y=2*x+2"); GnuPlot.AddErrBar(ValV1, DeltaY, "y=x^2", "Error bar"); GnuPlot.AddLinFit(id2, gpwLines); GnuPlot.AddLinFit(id3, gpwLines); GnuPlot.Plot(); GnuPlot.SavePng("testPlot.png"); }
void TGStatVec::ImposeDistr(const TGStatDistr& Distr, const TStr& FNmPref, TStr Desc, const bool& ExpBin, const bool& PowerFit, const TGpSeriesTy& PlotWith, const TStr& Style) const { if (Desc.Empty()) Desc = FNmPref.GetUc(); if (! At(0)->HasDistr(Distr) || Distr==gsdUndef || Distr==gsdMx) { return; } TGStat::TPlotInfo Info = At(0)->GetPlotInfo(Distr); TGnuPlot GnuPlot(Info.Val1+TStr(".")+FNmPref, TStr::Fmt("%s. G(%d, %d) --> G(%d, %d)", Desc.CStr(), At(0)->GetNodes(), At(0)->GetEdges(), Last()->GetNodes(), Last()->GetEdges())); GnuPlot.SetXYLabel(Info.Val2, Info.Val3); GnuPlot.SetScale(Info.Val4); int plotId; for (int at = 0; at < Len(); at++) { TStr Legend = At(at)->GetNm(); if (Legend.Empty()) { Legend = At(at)->GetTmStr(); } if (! ExpBin) { plotId = GnuPlot.AddPlot(At(at)->GetDistr(Distr), PlotWith, Legend, Style); } else { TFltPrV ExpBinV; TGnuPlot::MakeExpBins(At(at)->GetDistr(Distr), ExpBinV, 2, 0); plotId = GnuPlot.AddPlot(ExpBinV, PlotWith, Legend, Style); } if (PowerFit) { GnuPlot.AddPwrFit(plotId, gpwLines); } } GnuPlot.SavePng(); }