public void FillChart(IChart chart, IChartAxis[] axis) { if (!(chart is XSSFChart)) { throw new ArgumentException("Chart must be instance of XSSFChart"); } XSSFChart xssfChart = (XSSFChart)chart; CT_PlotArea plotArea = xssfChart.GetCTChart().plotArea; int allSeriesCount = plotArea.GetAllSeriesCount(); CT_ScatterChart scatterChart = plotArea.AddNewScatterChart(); AddStyle(scatterChart); for (int i = 0; i < series.Count; ++i) { Series s = (Series)series[i]; s.SetId(allSeriesCount + i); s.SetOrder(allSeriesCount + i); s.AddToChart(scatterChart); } foreach (IChartAxis ax in axis) { scatterChart.AddNewAxId().val = (uint)ax.Id; } }
/// <summary> /// Returns last calculated number cache for X axis. /// </summary> //internal XSSFNumberCache LastCaculatedXCache //{ // get // { // return lastCaclulatedXCache; // } //} /// <summary> /// Returns last calculated number cache for Y axis. /// </summary> //internal XSSFNumberCache LastCalculatedYCache //{ // get // { // return lastCalculatedYCache; // } //} internal void AddToChart(CT_ScatterChart ctScatterChart) { CT_ScatterSer scatterSer = ctScatterChart.AddNewSer(); scatterSer.AddNewIdx().val = (uint)this.id; scatterSer.AddNewOrder().val = (uint)this.order; /* TODO: add some logic to automatically recognize cell * types and choose appropriate data representation for * X axis. */ /*CT_AxDataSource xVal = scatterSer.AddNewXVal(); * CT_NumRef xNumRef = xVal.AddNewNumRef(); * xNumRef.f = (xMarker.FormatAsString()); * * CT_NumDataSource yVal = scatterSer.AddNewYVal(); * CT_NumRef yNumRef = yVal.AddNewNumRef(); * yNumRef.f = (yMarker.FormatAsString()); * * if (useCache) * { * // We can not store cache since markers are not immutable * XSSFNumberCache.BuildCache(xMarker, xNumRef); * lastCalculatedYCache = XSSFNumberCache.BuildCache(yMarker, yNumRef); * } */ CT_AxDataSource xVal = scatterSer.AddNewXVal(); XSSFChartUtil.BuildAxDataSource <Tx>(xVal, xs); CT_NumDataSource yVal = scatterSer.AddNewYVal(); XSSFChartUtil.BuildNumDataSource <Ty>(yVal, ys); }
internal void AddToChart(CT_ScatterChart ctScatterChart) { CT_ScatterSer ctScatterSer = ctScatterChart.AddNewSer(); ctScatterSer.AddNewIdx().val = (uint)this.id; ctScatterSer.AddNewOrder().val = (uint)this.order; XSSFChartUtil.BuildAxDataSource <Tx>(ctScatterSer.AddNewXVal(), this.xs); XSSFChartUtil.BuildNumDataSource <Ty>(ctScatterSer.AddNewYVal(), this.ys); }
public void FillChart(IChart chart, IChartAxis[] axis) { if (!(chart is XSSFChart)) { throw new ArgumentException("Chart must be instance of XSSFChart"); } CT_ScatterChart ctScatterChart = ((XSSFChart)chart).GetCTChart().plotArea.AddNewScatterChart(); this.AddStyle(ctScatterChart); foreach (XSSFScatterChartData <Tx, Ty> .Serie serie in this.series) { serie.AddToChart(ctScatterChart); } foreach (IChartAxis axi in axis) { ctScatterChart.AddNewAxId().val = (uint)axi.GetId(); } }
internal void AddToChart(CT_ScatterChart ctScatterChart) { CT_ScatterSer scatterSer = ctScatterChart.AddNewSer(); scatterSer.AddNewIdx().val = (uint)this.id; scatterSer.AddNewOrder().val = (uint)this.order; CT_AxDataSource xVal = scatterSer.AddNewXVal(); XSSFChartUtil.BuildAxDataSource <Tx>(xVal, xs); CT_NumDataSource yVal = scatterSer.AddNewYVal(); XSSFChartUtil.BuildNumDataSource <Ty>(yVal, ys); if (IsTitleSet) { scatterSer.tx = this.GetCTSerTx(); } }
public void FillChart(IChart chart, IChartAxis[] axis) { if (!(chart is XSSFChart)) { throw new ArgumentException("Chart must be instance of XSSFChart"); } XSSFChart xssfChart = (XSSFChart)chart; CT_PlotArea plotArea = xssfChart.GetCTChart().plotArea; CT_ScatterChart scatterChart = plotArea.AddNewScatterChart(); AddStyle(scatterChart); foreach (Series s in series) { s.AddToChart(scatterChart); } foreach (IChartAxis ax in axis) { scatterChart.AddNewAxId().val = (uint)ax.Id; } }
private void AddStyle(CT_ScatterChart ctScatterChart) { ctScatterChart.AddNewScatterStyle().val = ST_ScatterStyle.lineMarker; }