程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#繪圖之餅圖折線圖的完成辦法

C#繪圖之餅圖折線圖的完成辦法

編輯:C#入門知識

C#繪圖之餅圖折線圖的完成辦法。本站提示廣大學習愛好者:(C#繪圖之餅圖折線圖的完成辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是C#繪圖之餅圖折線圖的完成辦法正文


本文實例講述了C#繪圖之餅圖折線圖的完成辦法,是C#法式設計中異常適用的技能。分享給年夜家供年夜家參考。詳細辦法剖析以下:

顯示圖象的控件界說以下:

public PlaceHolder PlaceHolder1;

各個圖象的種別稱號以下:

PictureType    圖形品種    5    chChartTypeBarClustered    簇狀條形圖    0    NULL

PictureType    圖形品種    7    chChartTypeBarClustered3D    三維簇狀條形圖    0    NULL

PictureType    圖形品種    6    chChartTypeBarStacked    聚積條形圖    0    NULL

PictureType    圖形品種    8    chChartTypeBarStacked3D    三維聚積條形圖    0    NULL

PictureType    圖形品種    1    chChartTypeColumnClustered    簇狀柱形圖    0    NULL

PictureType    圖形品種    3    chChartTypeColumnClustered3D    三維簇狀柱形圖    0    NULL

PictureType    圖形品種    2    chChartTypeColumnStacked    聚積柱狀圖    1    NULL

PictureType    圖形品種    4    chChartTypeColumnStacked3D    三維聚積柱形圖    0    NULL

PictureType    圖形品種    13    chChartTypeLine    折線圖    0    NULL

PictureType    圖形品種    15    chChartTypeLineMarkers    數據點折線圖    0    NULL

PictureType    圖形品種    14    chChartTypeLineStacked    聚積折線圖    0    NULL

PictureType    圖形品種    16    chChartTypeLineStackedMarkers    聚積數據點折線圖    0    NULL

PictureType    圖形品種    17    chChartTypePie    餅圖    1    NULL

PictureType    圖形品種    19    chChartTypePie3D    三維餅圖    0    NULL

PictureType    圖形品種    18    chChartTypePieExploded    分別型餅圖    0    NULL

PictureType    圖形品種    20    chChartTypePieExploded3D    分別型三維餅圖    0    NULL

PictureType    圖形品種    9    chChartTypeSmoothLine    膩滑線圖    0    NULL

PictureType    圖形品種    10    chChartTypeSmoothLineMarkers    數據點膩滑線圖    0    NULL

PictureType    圖形品種    11    chChartTypeSmoothLineStacked    聚積膩滑線圖    0    NULL

PictureType    圖形品種    12    chChartTypeSmoothLineStackedMarkers    聚積數據膩滑線圖    0    NULL

取圖象的辦法以下:

/// </summary>
/// <param name="dbDtViewWrk">傳遞的數據</param>
/// <param name="strAbsolutePath">相對途徑</param>
/// <param name="strRelativePath">絕對途徑</param>
/// <param name="ChartType">要畫的圖格局(餅圖或許折線圖等)</param>
/// <param name="strTitle">統計稱號</param>
public void PaintToImage(DataTable dbDtViewWrk, string strAbsolutePath, string strRelativePath, ChartChartTypeEnum ChartType, string strTitle)
{
  string strSeriesName = "圖例";
  //寄存項目
  string[] ItemsName = new string[dbDtViewWrk.Rows.Count];
  //寄存數據
  string[] ItemsCount = new string[dbDtViewWrk.Rows.Count];
  //刻度單元
  int iUnit = 1;
  //最年夜值
  int iMaxValue = 0;
  string strXdata = String.Empty;
  string strYdata = String.Empty;
  
 //為數組賦值
 for (int i = 0; i < dbDtViewWrk.Rows.Count; i++)
 {
   ItemsName[i] = dbDtViewWrk.Rows[i][0].ToString(); //要統計的字段名字
   ItemsCount[i] = dbDtViewWrk.Rows[i][5].ToString();//要統計的字段數據
 }
  //為x軸指定特定字符串,以便顯示數據
  // string strXdata = String.Empty;
  foreach (string strData in ItemsName)
  {
 strXdata += strData + "\t";
  }
  // string strYdata = String.Empty;
  //為y軸指定特定的字符串,以便與x軸絕對應
  foreach (string strValue in ItemsCount)
  {
 strYdata += strValue + "\t";
 if (int.Parse(strValue) > iMaxValue)
 {
   iMaxValue = int.Parse(strValue);
 }
  }
  if (iMaxValue > 20)
  {
 iUnit = iMaxValue / 10;
  }
  //創立ChartSpace對象來放置圖表
  ChartSpace laySpace = new ChartSpaceClass();
  
  //在ChartSpace對象中添加圖表
  ChChart InsertChart = laySpace.Charts.Add(0);
  
  //底座色彩
  InsertChart.PlotArea.Interior.Color = "white";

  //指定繪制圖表的類型。類型可以經由過程OWC.ChartChartTypeEnum列舉值獲得
  InsertChart.Type = ChartType;//柱形圖


  //指定圖表能否須要圖例標注
  InsertChart.HasLegend = true;
  InsertChart.BarWidth = 0;
  InsertChart.Legend.Position = ChartLegendPositionEnum.chLegendPositionBottom;

  InsertChart.HasTitle = true;//為圖表添加題目
  InsertChart.Title.Caption = strTitle;//題目稱號

  //為x,y軸添加圖示解釋
  if (ChartType.ToString().IndexOf("ChartTypePie") == -1)
  {
 InsertChart.Axes[0].Font.Size = 11; //X軸

 InsertChart.Axes[1].Font.Size = 11; //Y軸
 InsertChart.Legend.Font.Size = 11;
 InsertChart.Axes[0].HasTitle = true;
 InsertChart.Axes[0].Title.Caption = "";//月份
 InsertChart.Axes[1].HasTitle = true;
 //InsertChart.Axes[1].Scaling.SplitMinimum = 200;
 InsertChart.Axes[1].Title.Caption = "數目";
 InsertChart.Axes[1].MajorUnit = iUnit; //刻度單元設置
 InsertChart.Axes[1].Scaling.Minimum = 0;//最小刻度=0
  }

  //添加一個series系列
  InsertChart.SeriesCollection.Add(0);
  
  //給定series系列的名字
  InsertChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimSeriesNames, +(int)ChartSpecialDataSourcesEnum.chDataLiteral, strSeriesName);

  //給定分類
  strXdata = strXdata.Substring(0, strXdata.Length - 1);
  InsertChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimCategories, +(int)ChartSpecialDataSourcesEnum.chDataLiteral, strXdata);

  //給定值
  strYdata = strYdata.Substring(0, strYdata.Length - 1);
  InsertChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimValues, (int)ChartSpecialDataSourcesEnum.chDataLiteral, strYdata);

  //添加標簽
  ChDataLabels dls = InsertChart.SeriesCollection[0].DataLabelsCollection.Add();
  if (ChartType.ToString().IndexOf("ChartTypePie") != -1)
  {
 dls.Position = ChartDataLabelPositionEnum.chLabelPositionCenter;
 dls.HasPercentage = false;
 //dls.HasValue = false;
 dls.HasCategoryName = false;
 //指定圖表能否須要圖例標注
 InsertChart.HasLegend = true;
 InsertChart.Legend.Position = ChartLegendPositionEnum.chLegendPositionBottom;
  }

  //輸入文件.
  int iImageLength = 0;
  int iImageWidth = 0;

  //從Config文件獲得設置
  //iImageLength = int.Parse(WebConfigurationManager.AppSettings["ShowImageLength"]);
  //iImageWidth = int.Parse(WebConfigurationManager.AppSettings["ShowImageWidth"]);
  iImageLength = 450;
  iImageWidth = 300;

  string strImageName = ChartType.ToString() + "_" + Guid.NewGuid().ToString("N") + ".png";
  laySpace.ExportPicture(strAbsolutePath + strImageName, "PNG", 450, 300);

  //把圖片添加到placeholder中,並在頁面上顯示
  string strImageTag = "<IMG WIDTH='450' SRC='" + strRelativePath + strImageName + "'/>";
  
  this.PlaceHolder1.Controls.Add(new LiteralControl(strImageTag));
  // return strImageTag;
}

願望本文所述對年夜家的C#法式設計有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved