2012-11-28 8 views
1

나는 aspose.slides을 사용하는 것이 새로운데,이 샷 설명에서 주어진 막대 차트를 만들 수 있는지 궁금합니다.Aspose를 사용하여 그래프 그리기

업데이트하려는 차트는 -100에서 100까지의 y 축과 0의 x 축을 가지며 막대 그래프는 양수 쪽이 올라가거나 음수가 내려야합니다.

일반 막대 차트 쇼 아래의 코드는 내가 요구 사항을 관찰하고 원하는 차트를 생성하는 목적을 제공하기 위해 다음과 같은 코드를 사용할 수 있다는 것을 공유하고있다

// Instantiate PresentationEx class that represents PPTX file 
PresentationEx pres = new PresentationEx("D:\\AsposeChart.pptx"); 

// Access first slide 
SlideEx sld = pres.Slides[0]; 

// Add chart with default data 
ChartEx chart = (ChartEx)sld.Shapes[0]; 

// Setting the index of chart data sheet 
int defaultWorksheetIndex = 0; 

// Getting the chart data worksheet 
ChartDataCellFactory fact = chart.ChartData.ChartDataCellFactory; 

// Take first chart series 
ChartSeriesEx series = chart.ChartData.Series[0]; 

// Now updating series data 
fact.GetCell(defaultWorksheetIndex, 0, 1, "New_Series1");//modifying series name 
series.Values[0].Value = 90; 
series.Values[1].Value = 123; 
series.Values[2].Value =44; 

// Take Second chart series 
series = chart.ChartData.Series[1]; 

// Now updating series data 
fact.GetCell(defaultWorksheetIndex, 0, 2, "New_Series2");//modifying series name   
series.Values[0].Value = 23; 
series.Values[1].Value = 67; 
series.Values[2].Value = 99; 

// Now, Adding a new series 
chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 0, 3, "Series 3"), chart.Type); 

// Take 3rd chart series 
series = chart.ChartData.Series[2]; 

// Now populating series data 
series.Values.Add(fact.GetCell(defaultWorksheetIndex, 1, 3, 20)); 
series.Values.Add(fact.GetCell(defaultWorksheetIndex, 2, 3, 50)); 
series.Values.Add(fact.GetCell(defaultWorksheetIndex, 3, 3, 30)); 

chart.Type = ChartTypeEx.ClusteredCylinder; 

// Save presentation with chart 
pres.Write(@"D:\AsposeChartMoodified.pptx"); 

답변

0

우는 소리입니다. 음수 영역에서 계열을 렌더링 할 수있는 샘플 코드를 공유했습니다. 그러나 음수이거나 수평 스케일 값보다 작은 값이 렌더링되면 채우기 색상이 제거된다는 작은 문제가 있습니다.

이 Aspose.Slides 재산 누락으로 인해 내가 ID 에게 SLIDESNET-33821 (당신이 this link 이상 Aspose.Slides 제품 지원 포럼에서이 문제의 상태를 추적 할 수 있습니다)을 제공하기에 문제를 만들었습니다 기능 지원. 누락 된 기능을 강조 표시 한 이미지를 공유했으며 둘러싸인 값의 선택을 취소하면 채워지지 않은 시리즈 값이 채워집니다. 내 의견으로는, 당신이 템플릿 차트를 사용한다면이 문제는 발생하지 않을 수도 있습니다. 그러나 당신은 이것을 끝까지 검증 할 수 있습니다.

public static void addBarChart() 
{ 
    PresentationEx pres = new PresentationEx(); 
    ChartEx chart = pres.Slides[0].Shapes.AddChart(ChartTypeEx.ClusteredColumn, 20, 20, 500, 400); 
    //Setting values of Y-axis or Value axis 
    chart.ValueAxis.IsAutomaticMaxValue = false; 
    chart.ValueAxis.IsAutomaticMinValue = false; 
    chart.ValueAxis.CrossType = CrossesTypeEx.Custom; 
    chart.ValueAxis.MinValue = 0; 
    chart.ValueAxis.MaxValue = 400; 
    chart.ValueAxis.CrossAt = 100f; 

    chart.ChartData.Series.Clear(); 
    int defaultWorksheetIndex = 0; 
    //Getting the chart data worksheet 
    ChartDataCellFactory fact = chart.ChartData.ChartDataCellFactory; 

    //Adding new series 
    int id=chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 0, 1, "Series 1"), chart.Type); 
    ChartSeriesEx series = chart.ChartData.Series[id]; 


    //Now populating series data 

    series.Values.Add(fact.GetCell(defaultWorksheetIndex, 1, 1, 30)); 
    series.Values.Add(fact.GetCell(defaultWorksheetIndex, 2, 1, 150)); 
    series.Values.Add(fact.GetCell(defaultWorksheetIndex, 3, 1, 320)); 
    series.Values.Add(fact.GetCell(defaultWorksheetIndex, 4, 1, 80)); 

    series.Format.Fill.FillType = FillTypeEx.Solid; 
    series.Format.Fill.SolidFillColor.Color = Color.Red; 
    series.IsColorVaried = false; 
    pres.Write("D:\\Aspose Data\\SampleChart.pptx"); 

} 

PS는, 내 이름은 Nayyer 내가 Aspose에서 개발자 전도자입니다.