//---------------------------------------------------------
//1、背景透明設置:
this.zedGraphControl1.GraphPane.Chart.Fill = newFill(Color.Transparent, Color.Transparent, 45.0f);
this.zedGraphControl1.MasterPane.Fill = newFill(Color.Transparent, Color.Transparent, 45.0f);
this.zedGraphControl1.GraphPane.Fill.Color = Color.Transparent;
//三個背景填充屬性都設置爲透明時背景透明
//或者:
this.zedGraphControl1.GraphPane.Fill.Color = Color.Transparent;
this.zedGraphControl1.MasterPane.Fill.IsVisible = false;
this.zedGraphControl1.GraphPane.Chart.Fill.IsVisible = false;
//2、座標軸顏色:
this.zedGraphControl1.GraphPane.YAxis.Color = Color.Red;
this.zedGraphControl1.GraphPane.Y2Axis.Color = Color.Red;
//3、文字及顏色
//圖表標題及顏色
this.zedGraphControl1.GraphPane.Title.Text = "GraphPane.Title.Text";
this.zedGraphControl1.GraphPane.Title.FontSpec.FontColor = Color.Blue;
//座標軸標題及顏色
this.zedGraphControl1.GraphPane.XAxis.Title.Text = "GraphPane.XAxis.Title";
this.zedGraphControl1.GraphPane.XAxis.Title.FontSpec.FontColor = Color.Red;
//圖表邊框顏色:
//內邊框
this.zedGraphControl1.GraphPane.Chart.Border.Color = Color.Red;
//外邊框
this.zedGraphControl1.GraphPane.Border = new Border(Color.Red, 0);
//隱藏外邊框:
this.zedGraphControl1.BorderStyle = BorderStyle.None;
this.zedGraphControl1.GraphPane.Border.IsVisible = false;
this.zedGraphControl1.MasterPane.Border.IsVisible = false;
//4、座標軸刻度及字體顏色:
this.zedGraphControl1.GraphPane.XAxis.Scale.FontSpec.FontColor = Color.White; //改變軸上的刻度標註的顏色;
this.zedGraphControl1.GraphPane.XAxis.MajorTic.Color = Color.Red; //大刻度顏色
this.zedGraphControl1.GraphPane.XAxis.MinorTic.Color = Color.Red; //小刻度顏色
//5、網格及顏色:
this.zedGraphControl1.GraphPane.XAxis.MajorGrid.IsVisible = true;
this.zedGraphControl1.GraphPane.XAxis.MajorGrid.Color = Color.Gray;
//6、在對面軸顯示刻度
myPane.YAxis.MajorTic.IsOpposite = true; //對面軸上顯示大刻度
myPane.YAxis.MinorTic.IsOpposite = false; //對面軸上不顯示小刻度
//7、曲線標籤位置
this.zedGraphControl4.GraphPane.Legend.Position = LegendPos.Right;
//8、指定要生成的曲線按【YAxis】或【Y2Axis】的刻度描畫
double x, y1, y2;
PointPairList list1 = new PointPairList();
PointPairList list2 = new PointPairList();
for (int i = 0; i < 10; i++)
{
x = (double)i + 5;
y1 = 1.5 + Math.Sin((double)i * 0.2);
y2 = 3.0 * (1.5 + Math.Sin((double)i * 0.2));
list1.Add(x, y1);
list2.Add(x, y2);
}
LineItem myCurve1 = myPane.AddCurve("Porsche", list1, Color.Red, SymbolType.Diamond);
//myCurve1.IsYAxis = true; //默認按【YAxis】的刻度描畫
LineItem myCurve2 = myPane.AddCurve("Piper", list2, Color.Blue, SymbolType.Circle);
myCurve2.IsY2Axis = true; //手動改爲按【Y2Axis】的刻度描畫
zedGraphControl1.AxisChange();
zedGraphControl1.Invalidate();
以上內容爲部分轉載 + 個人總結。
轉載:http://wenku.baidu.com/link?url=2DjaOfrzc8BoR5jNQQ6skYkMiCfOzgeeFmCTsg6KLq7n24I3Cz57Rw-qDHqDkQIzFPFRybx6-a-eMgB2R20lSCUP_QW3tOS_SrafD_WZcwm//-----------------------------------------------------------
Chart
ChartBorder |
圖表區域的邊框設置 |
ChartFill |
圖表區域的背景填充 |
Legend |
圖表的註釋標籤顯示設置項目,一組數據對應一種顏色的註釋 |
IsHStack |
當有多個顯示項的時候設置 Y 軸數據是疊加的還是分開的 |
Xaxis |
圖表區域的 X 軸相關信息設置 |
AxisColor |
座標軸顏色 |
Cross |
座標的原點,可以設置座標的偏移程度 |
CrossAuto |
原點自動設置:True 的話 Cross 的設置就無效了。 |
FontSpec |
X 軸標題字體相關信息 |
Angle |
X 軸標題字體顯示時候的角度,0爲水平 90爲垂直 |
Fill |
X 軸標題字體填充信息 |
ColorOpacity |
透明度 |
IsScaled |
設置 X 軸標題字體顯示大小是否根據圖的比例放大縮小 |
RangeMax |
填充時候的最大傾斜度(有過渡色,沒試過) |
RangeMin |
填充時候的最小傾斜度(有過渡色,沒試過) |
StringAlignment |
X 軸標題字體排列(不清楚,沒試過) |
IsOmitMag |
是否顯示指數冪(10次方,沒試過,似乎與 IsUseTenPower 有關係) |
IsPreventLabelOverlap |
座標值顯示是否允許重疊,如果False的話,控件會根據座標值長度自動消除部分座標值的顯示狀態 |
IsShowTitle |
X 軸標題是否顯示 |
IsTicsBetweenLabels |
兩個座標值之間是否自動顯示分隔標誌 |
IsUseTenPower |
是否使用10次冪指數 |
IsZeroLine |
當數據爲0時候是否顯示(在餅狀圖顯示的時候有用) |
IsVisible |
是否顯示 X 軸 |
MajorGrid |
大跨度的 X 軸表格虛線線顯示信息 |
DashOff |
虛線中孔間距 |
DashOn |
虛線單位長度 |
MajorTic |
大跨度的 X 軸刻度信息 |
IsInside |
在 Chart 內部是否顯示 |
IsOutSide |
在 Chart 外部是否顯示 |
IsOpposite |
在對面的軸上是否顯示 |
MinorGrid |
小跨度的 X 軸表格虛線顯示信息 |
MinorTic |
小跨度的 x 軸刻度信息 |
MinSpace |
刻度和軸之間的距離(沒試過) |
Scale |
刻度值的一些設定 |
IsReverse |
X 軸的刻度值從高到低還是從低到高 |
MajorStep |
大刻度步長 |
MajorStepAuto |
是否自動設置大刻度步長 |
MajorUnit |
大刻度步長單位 |
Max |
刻度最大值 |
MaxAuto |
根據輸入數據自動設置刻度最大值 |
Min |
刻度最小值 |
MinAuto |
根據輸入數據自動設置刻度最小值 |
MinGrace |
不清楚,沒試過 |
MinorStep |
小刻度步長 |
MinorStepAuto |
是否自動設置小刻度步長 |
MinorUnit |
小刻度單位 |
Type |
數據顯示方式 |
Liner |
直接現實(自動) |
Date |
按日期方式顯示 |
Log |
按指數冪方式顯示 |
Ordinal |
順序顯示 |
Y2Axis |
第二個 Y 軸座標信息顯示(具體設置看 X 軸) |
Yaxis |
第一個 Y 軸座標信息顯示(具體設置看 X 軸) |
BarBase |
在生成柱狀圖的時候設置柱狀是基於 X 軸還是其他軸 |
BarType |
柱狀的類型疊加或其他。 |
IsFontsScaled |
圖比例變化時候圖表上的文字是否跟着自動縮放 |
IsIgnoreInitial |
是否忽略初始值 |
IsIgnoreMissing |
是否忽略缺省值 |
IsPenWidthScaled |
圖比例變化時候圖表上的畫筆的粗細是否跟着自動縮放 |
IsShowTitle |
圖表標題是否顯示 |
PaneFill |
Pane 的一些填充信息 |
BaseDimension |
縮放比例基數(可以試試效果) |
IsImageMap |
不清楚幹嗎用的 |
AxisChaneged |
是否允許自動繪圖(沒試過,一般都 true,動態繪圖) |
CacheDuration |
Cache 保存時間0 |
OutputFormat |
輸出格式 |
RenderedImagePath |
輸出路徑 |
RenderMode |
輸出模式,不太清楚一般都是 ImageTag,另一個輸出的是亂碼不是圖片。對於圖表而言,一般是三種表現形式:柱狀圖、餅狀圖和點線圖。 |
//附:在vs中使用ZedGraph控件的一些記錄(轉)
//
//幾個注意點:
//
//圖片的保存路徑設置:RenderedImagePath 屬性中設置,程序對該文件夾應該是有寫和修改權限的
//
//圖片的輸出格式:OutputFormat 屬性中設置,Png 的推薦,比較清晰。
//myPane.YAxis.MajorGrid.IsZeroLine = false; // Don't display the Y zero line
// (填充數據點)
// myCurve.Symbol.Fill = new Fill(Color.White);
//聲明畫筆
//GraphPane myPane = zgc.GraphPane;
// 設定座標組
//PointPairList list1 = new PointPairList();
//zgc.PointValueEvent += new ZedGraphControl.PointValueHandler(MyPointValueHandler); //修改右鍵
//先清除
//zedChart.GraphPane.CurveList.Clear();
//zedChart.GraphPane.GraphItemList.Clear();
//重新繪製
//zedChart.AxisChange();
//zedChart.Refresh();
//刷新控件
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using ZedGraph;
namespace zedGraphControl
{
/// <summary>豐元自定義圖表控件
/// 豐元自定義圖表控件
/// </summary>
public partial class zedGraphControl : UserControl
{
/// <summary>構造函數
/// 構造函數
/// </summary>
public zedGraphControl()
{
InitializeComponent();
}
/// <summary>
/// 控件ZedGraphControl 代理
/// </summary>
public GraphPane myPane;
#region ZedGraph屬性設置
/// <summary>屬性設置
/// 屬性設置
/// </summary>
public virtual void CreateChartAttribute()
{
myPane = zedGraphControl1.GraphPane;
myPane.Title.Text = Title;
myPane.Title.FontSpec.FontColor = TitleColor;
myPane.IsPenWidthScaled = IsPenWidthScaled;
myPane.TitleGap = TitleGrap;
myPane.Chart.Fill = new Fill(BackFillColor1, BackFillColor2,BackColorFillAngle);
//myPane.Y2Axis.IsVisible = ISY2Visble;
//myPane.X2Axis.IsVisible = ISX2Visble;
myPane.YAxis.Scale.FontSpec.FontColor = Y1ScaleColor;
myPane.Y2Axis.Scale.FontSpec.FontColor = Y2ScaleColor;
myPane.XAxis.Scale.FontSpec.FontColor = X1ScaleColor;
myPane.X2Axis.Scale.FontSpec.FontColor = X2ScaleColor;
myPane.Legend.IsVisible = IsLegendVisible;
myPane.XAxis.MajorGrid.IsVisible = IsXGraidVisble;
myPane.YAxis.MajorGrid.IsVisible = IsYGraidVisble;
myPane.XAxis.MajorTic.IsOpposite = IsX2MaxScale;
myPane.XAxis.MinorTic.IsOpposite = IsX2MinScale;
myPane.X2Axis.MajorTic.IsOpposite = IsX1MaxScale;
myPane.X2Axis.MinorTic.IsOpposite = IsX1MinScale;
myPane.YAxis.MajorTic.IsOpposite = IsY2MaxScale;
myPane.YAxis.MinorTic.IsOpposite = IsY2MinScale;
myPane.Y2Axis.MajorTic.IsOpposite = IsY1MaxScale;
myPane.Y2Axis.MinorTic.IsOpposite = IsY1MinScale;
myPane.XAxis.Scale.FontSpec.Size = X1ScaleSize;
myPane.X2Axis.Scale.FontSpec.Size = X2ScaleSize;
myPane.YAxis.Title.Text = Y1Title;
myPane.YAxis.Title.FontSpec.FontColor = Y1TitleColor;
myPane.Y2Axis.Title.Text = Y2Title;
myPane.Y2Axis.Title.FontSpec.FontColor = Y2TitleColor;
myPane.XAxis.Title.Text = X1Title;
myPane.XAxis.Title.FontSpec.FontColor = X1TitleColor;
myPane.XAxis.Title.IsVisible = IsX1TitleVisble;
myPane.X2Axis.Title.IsVisible = IsX2TitleVisble;
myPane.YAxis.Scale.FontSpec.Size = Y1ScaleSize;
myPane.Y2Axis.Scale.FontSpec.Size = Y2ScaleSize;
myPane.YAxis.Title.FontSpec.Size = Y1TitleSize;
myPane.Y2Axis.Title.FontSpec.Size = Y2TitleSize;
myPane.Legend.FontSpec.Size = LegendSize;
myPane.Legend.FontSpec.Family = LegendFamily;
myPane.Legend.FontSpec.IsUnderline = IsUnderLine;
myPane.Legend.FontSpec.IsItalic = IsItaLinc;
myPane.Legend.FontSpec.IsBold = IsBold;
myPane.Legend.FontSpec.FontColor = LegendColor;
myPane.Legend.Fill = new Fill(LegendBackGroundColor1, LegendBackGroundColor2,LegendBackGroundColor3);
myPane.Legend.Gap = LegendGap;
myPane.Legend.IsHStack = IsHStack;
myPane.Legend.IsReverse = IsReverse;
myPane.Legend.IsShowLegendSymbols = IsShowLegendSymbols;
myPane.Legend.FontSpec.IsDropShadow = IsDropShadow;
myPane.Legend.FontSpec.DropShadowColor = DropShadowColor;
myPane.Legend.FontSpec.DropShadowOffset = DropShadowOffset;
myPane.Legend.Position = (ZedGraph.LegendPos)Position;
myPane.BarSettings.ClusterScaleWidthAuto = CylinderWidthAuto;
myPane.BarSettings.ClusterScaleWidth = CylinderWidth;
zedGraphControl1.Y1Y2 = Y1Y2;
myPane.Legend.Border.IsVisible =BorderVisible;
}
private bool _Y1Y2 = false;
/// <summary>
/// 顯示圖表值是y1和x1軸的值或是y1、y2和x1 的值
/// </summary>
public bool Y1Y2
{
get { return _Y1Y2; }
set { _Y1Y2 = value; }
}
/// <summary>
/// 顯示值針的值
/// </summary>
/// <param name="IsShowCursorValues">bool</param>
public void IsShowCursorValues(bool IsShowCursorValues)
{
zedGraphControl1.IsShowCursorValues = IsShowCursorValues;
}
/// <summary>
/// 顯示節點的值
/// </summary>
/// <param name="IsShowPointValues"></param>
public void IsShowPointValues(bool IsShowPointValues)
{
zedGraphControl1.IsShowPointValues = IsShowPointValues;
}
/// <summary>
/// 隱藏或顯示菜單
/// </summary>
/// <param name="IsMenu">bool</param>
public void IsShowContextMenu(bool IsMenu)
{
zedGraphControl1.IsEnableHZoom = IsMenu;
zedGraphControl1.IsEnableVZoom = IsMenu;
zedGraphControl1.IsShowContextMenu = IsMenu;
}
#endregion
#region 設置X軸的刻度值的大小
//設置X軸的刻度值的大小
private float x1scalesize = 8;
/// <summary>
/// 設置X軸的刻度值的大小
/// </summary>
public float X1ScaleSize
{
get { return x1scalesize; }
set { x1scalesize = value; }
}
#endregion
#region 設置X2軸的刻度值的大小
//設置X2軸的刻度值的大小
private float x2scalesize = 8;
/// <summary>
/// 設置X2軸的刻度值的大小
/// </summary>
public float X2ScaleSize
{
get { return x2scalesize; }
set { x2scalesize = value; }
}
#endregion
#region 圖表標題
//圖表標題
private string title = "豐元科技";
/// <summary>
/// 圖表標題
/// </summary>
public string Title
{
get { return title; }
set { title = value; }
}
#endregion
#region 圖表的背景填充顏色
//圖表的背景填充顏色
private Color backFillColor1 = Color.White;
/// <summary>
/// 圖表的背景填充顏色
/// </summary>
public Color BackFillColor1
{
get { return backFillColor1; }
set { backFillColor1 = value; }
}
#endregion
#region 圖表的背景填充顏色
//圖表的背景填充顏色
private Color backFillColor2 = Color.FromArgb(255, 255, 166);
/// <summary>
/// 圖表的背景填充顏色
/// </summary>
public Color BackFillColor2
{
get { return backFillColor2; }
set { backFillColor2 = value; }
}
#endregion
#region 圖表背景填充顏色角度
//圖表背景填充顏色角度
private float backcolorFillAngle = 45f;
/// <summary>
/// 圖表背景填充顏色角度
/// </summary>
public float BackColorFillAngle
{
get { return backcolorFillAngle; }
set { backcolorFillAngle = value; }
}
#endregion
#region 圖表的刻度邊框加粗
//圖表的刻度邊框加粗
private bool isPenWidthScaled = false;
/// <summary>
/// 圖表的刻度邊框加粗
/// </summary>
public bool IsPenWidthScaled
{
get { return isPenWidthScaled; }
set { isPenWidthScaled = value; }
}
#endregion
#region 圖表標題與X2軸的距離
//圖表標題與X2軸的距離
private float titleGap = 1;
/// <summary>
/// 圖表標題與X2軸的距離
/// </summary>
public float TitleGrap
{
get { return titleGap; }
set { titleGap = value; }
}
#endregion
#region 是否顯示Y2軸
//是否顯示Y2軸
private bool isY2visble = false;
/// <summary>
/// 是否顯示Y2軸
/// </summary>
public bool ISY2Visble
{
get { return isY2visble; }
set { isY2visble = value; }
}
#endregion
#region 是否顯示X2軸
//是否顯示X2軸
private bool isx2visble = false;
/// <summary>
/// 是否顯示X2軸
/// </summary>
public bool ISX2Visble
{
get { return isx2visble; }
set { isx2visble = value; }
}
#endregion
#region 是否顯示X1軸的標題
//是否顯示X1軸的標題
private bool isX1TitleVisble = false;
/// <summary>
/// 是否顯示X1軸的標題
/// </summary>
public bool IsX1TitleVisble
{
get { return isX1TitleVisble; }
set { isX1TitleVisble = value; }
}
#endregion
#region 是否顯示X2軸的標題
//是否顯示X2軸的標題
private bool isX2TitleVisble = false;
/// <summary>
/// 是否顯示X2軸的標題
/// </summary>
public bool IsX2TitleVisble
{
get { return isX2TitleVisble; }
set { isX2TitleVisble = value; }
}
#endregion
#region 設置Y1軸的刻度值的顏色
private Color Y1scalecolor = Color.Black;
/// <summary>
/// 設置Y1軸的刻度值的顏色
/// </summary>
public Color Y1ScaleColor
{
get { return Y1scalecolor; }
set { Y1scalecolor = value; }
}
#endregion
#region 設置Y2軸的刻度值顏色
private Color Y2scalecolor = Color.Black;
/// <summary>
/// 設置Y2軸的刻度值顏色
/// </summary>
public Color Y2ScaleColor
{
get { return Y2scalecolor; }
set { Y2scalecolor = value; }
}
#endregion
#region 設置X1軸的刻度值顏色
private Color X1scalecolor = Color.Black;
/// <summary>
/// 設置X1軸的刻度值顏色
/// </summary>
public Color X1ScaleColor
{
get { return X1scalecolor; }
set { X1scalecolor = value; }
}
#endregion
#region 設置X2軸的刻度值顏色
private Color X2scalecolor = Color.Black;
/// <summary>
/// 設置X2軸的刻度值顏色
/// </summary>
public Color X2ScaleColor
{
get { return X2scalecolor; }
set { X2scalecolor = value; }
}
#endregion
#region 是否顯示圖例
//是否顯示圖例
private bool Islegendvisible = true;
/// <summary> 是否顯示圖例
///
/// </summary>
public bool IsLegendVisible
{
get { return Islegendvisible; }
set { Islegendvisible = value; }
}
#endregion
#region 顯示X軸網格
//顯示X軸網格
private bool IsXgridvisible = true;
/// <summary>
/// 顯示X軸網格
/// </summary>
public bool IsXGraidVisble
{
get { return IsXgridvisible; }
set { IsXgridvisible = value; }
}
#endregion
#region 顯示Y軸網格
//顯示Y軸網格
private bool IsYgridvisible = true;
/// <summary>
/// 顯示Y軸網格
/// </summary>
public bool IsYGraidVisble
{
get { return IsYgridvisible; }
set { IsYgridvisible = value; }
}
#endregion
#region 圖表標題顏色
//圖表標題顏色
private Color titlecolor = Color.Black;
/// <summary>
/// 圖表標題顏色
/// </summary>
public Color TitleColor
{
get { return titlecolor; }
set { titlecolor = value; }
}
#endregion
#region Y1軸是否顯示小刻度
//Y1軸是否顯示小刻度
private bool isy1minscale = false;
/// <summary> Y1軸是否顯示小刻度
///
/// </summary>
public bool IsY1MinScale
{
get { return isy1minscale; }
set { isy1minscale = value; }
}
#endregion
#region Y2軸是否顯示小刻度
//Y2軸是否顯示小刻度
private bool isy2minscale = false;
/// <summary> Y2軸是否顯示小刻度
///
/// </summary>
public bool IsY2MinScale
{
get { return isy2minscale; }
set { isy2minscale = value; }
}
#endregion
#region Y1軸是否顯示大刻度
//Y1軸是否顯示大刻度
private bool isy1maxscale = true;
/// <summary>
/// Y1軸是否顯示大刻度
/// </summary>
public bool IsY1MaxScale
{
get { return isy1maxscale; }
set { isy1maxscale = value; }
}
#endregion
#region Y2軸是否顯示大刻度
//Y2軸是否顯示大刻度
private bool isy2maxscale = true;
/// <summary> Y2軸是否顯示大刻度
///
/// </summary>
public bool IsY2MaxScale
{
get { return isy2maxscale; }
set { isy2maxscale = value; }
}
#endregion
#region X1軸是否顯示小刻度
//X1軸是否顯示小刻度
private bool isx1minscale = false;
/// <summary> X1軸是否顯示小刻度
///
/// </summary>
public bool IsX1MinScale
{
get { return isx1minscale; }
set { isx1minscale = value; }
}
#endregion
#region X2軸是否顯示小刻度
//X2軸是否顯示小刻度
private bool isx2minscale = false;
/// <summary> X2軸是否顯示小刻度
///
/// </summary>
public bool IsX2MinScale
{
get { return isx2minscale; }
set { isx2minscale = value; }
}
#endregion
#region X1軸是否顯示大刻度
//X1軸是否顯示大刻度
private bool isx1maxscale = true;
/// <summary> X1軸是否顯示大刻度
///
/// </summary>
public bool IsX1MaxScale
{
get { return isx1maxscale; }
set { isx1maxscale = value; }
}
#endregion
#region X2軸是否顯示大刻度
//X2軸是否顯示大刻度
private bool isx2maxscale = true;
/// <summary> X2軸是否顯示大刻度
///
/// </summary>
public bool IsX2MaxScale
{
get { return isx2maxscale; }
set { isx2maxscale = value; }
}
#endregion
#region 設置Y1軸的標題
//設置Y1軸的標題
private string y1Title = "Y軸";
/// <summary>
/// 設置Y1軸的標題
/// </summary>
public string Y1Title
{
get { return y1Title; }
set { y1Title = value; }
}
#endregion
#region 設置Y2軸的標題
//設置Y2軸的標題
private string y2Title = "Y2軸";
/// <summary>
/// 設置Y2軸的標題
/// </summary>
public string Y2Title
{
get { return y2Title; }
set { y2Title = value; }
}
#endregion
#region 設置Y1軸的標題顏色
//設置Y1軸的標題顏色
private Color y1TitleColor = Color.Black;
/// <summary>
/// 設置Y1軸的標題顏色
/// </summary>
public Color Y1TitleColor
{
get { return y1TitleColor; }
set { y1TitleColor = value; }
}
#endregion
#region 設置Y2軸的標題顏色
//設置Y2軸的標題顏色
private Color y2TitleColor = Color.Black;
/// <summary>
/// 設置Y2軸的標題顏色
/// </summary>
public Color Y2TitleColor
{
get { return y2TitleColor; }
set { y2TitleColor = value; }
}
#endregion
#region 設置X1軸的標題
//設置X1軸的標題
private string x1Title = "X軸";
/// <summary>
/// 設置X1軸的標題
/// </summary>
public string X1Title
{
get { return x1Title; }
set { x1Title = value; }
}
#endregion
#region 設置X1軸的標題顏色
//設置X1軸的標題顏色
private Color x1TitleColor = Color.Black;
/// <summary>
/// 設置X1軸的標題顏色
/// </summary>
public Color X1TitleColor
{
get { return x1TitleColor; }
set { x1TitleColor = value; }
}
#endregion
#region 設置X1軸的值傾斜度
//設置X1軸的值傾斜度
private float x1scaleAngle = 70f;
/// <summary>
/// 設置X1軸的值傾斜度
/// </summary>
public float X1ScaleAngle
{
get { return x1scaleAngle; }
set { x1scaleAngle = value; }
}
#endregion
#region 設置X1軸的標題大小
//設置X1軸的標題大小
private float x1titlesize = 8;
/// <summary>
/// 設置X1軸的標題大小
/// </summary>
public float X1TitleSize
{
get { return x1titlesize; }
set { x1titlesize = value; }
}
#endregion
#region 設置Y1軸刻度值字體的大小
//設置Y1軸刻度值字體的大小
private float y1ScaleSize = 8;
/// <summary>
/// 設置Y1軸刻度值字體的大小
/// </summary>
public float Y1ScaleSize
{
get { return y1ScaleSize; }
set { y1ScaleSize = value; }
}
#endregion
#region 設置Y2軸刻度值字體的大小
//設置Y2軸刻度值字體的大小
private float y2ScaleSize = 8;
/// <summary>
/// 設置Y2軸刻度值字體的大小
/// </summary>
public float Y2ScaleSize
{
get { return y2ScaleSize; }
set { y2ScaleSize = value; }
}
#endregion
#region 設置Y3軸刻度值字體的大小
//設置Y3軸刻度值字體的大小
private float y3ScaleSize = 8;
/// <summary>
/// 設置Y3軸刻度值字體的大小
/// </summary>
public float Y3ScaleSize
{
get { return y3ScaleSize; }
set { y3ScaleSize = value; }
}
#endregion
#region 設置Y1軸標題字體大小
//設置Y1軸標題字體大小
private float y1titleSize = 10;
/// <summary>
/// 設置Y1軸標題字體大小
/// </summary>
public float Y1TitleSize
{
get { return y1titleSize; }
set { y1titleSize = value; }
}
#endregion
#region 設置Y2軸標題字體大小
//設置Y2軸標題字體大小
private float y2titleSize = 10;
/// <summary>
/// 設置Y2軸標題字體大小
/// </summary>
public float Y2TitleSize
{
get { return y2titleSize; }
set { y2titleSize = value; }
}
#endregion
#region 設置Y3軸標題字體大小
//設置Y3軸標題字體大小
private float y3titleSize = 10;
/// <summary>
/// 設置Y3軸標題字體大小
/// </summary>
public float Y3TitleSize
{
get { return y3titleSize; }
set { y3titleSize = value; }
}
#endregion
#region 設置圓柱的寬度
//設置圓柱的寬度
private double cylinderWidth = 0.5;
/// <summary>
/// 設置圓柱的寬度
/// </summary>
public double CylinderWidth
{
get { return cylinderWidth; }
set { cylinderWidth = value; }
}
#endregion
#region 設置圓柱寬度是否是自動更改
//設置圓柱寬度是否是自動更改
private bool cylinderwidthauto = false;
/// <summary>
/// 設置圓柱寬度是否是自動更改
/// </summary>
public bool CylinderWidthAuto
{
get { return cylinderwidthauto; }
set { cylinderwidthauto = value; }
}
#endregion
//以下是圖例的屬性設置
#region 設置圖例的字體大小
//設置圖例的字體大小
private float legendsize = 10;
/// <summary>
/// 設置圖例的字體大小
/// </summary>
public float LegendSize
{
get { return legendsize; }
set { legendsize = value; }
}
#endregion
#region 設置圖例字體
//設置圖例字體
private string legendfamily = "宋體";
/// <summary>
/// 設置圖例字體
/// </summary>
public string LegendFamily
{
get { return legendfamily; }
set { legendfamily = value; }
}
#endregion
#region 圖例字體是否帶下劃線
//圖例字體是否帶下劃線
private bool isunderline = false;
/// <summary>
/// 圖例字體是否帶下劃線
/// </summary>
public bool IsUnderLine
{
get { return isunderline; }
set { isunderline = value; }
}
#endregion
#region 圖例字體是否傾斜
//圖例字體是否傾斜
private bool isitalinc = false;
/// <summary>
/// 圖例字體是否傾斜
/// </summary>
public bool IsItaLinc
{
get { return isitalinc; }
set { isitalinc = value; }
}
#endregion
#region 圖例字體是否加粗
//圖例字體是否加粗
private bool isbold = false;
/// <summary>
/// 圖例字體是否加粗
/// </summary>
public bool IsBold
{
get { return isbold; }
set { isbold = value; }
}
#endregion
#region 圖例字體顏色
//圖例字體顏色
private Color legendcolor = Color.Black;
/// <summary>
/// 圖例字體顏色
/// </summary>
public Color LegendColor
{
get { return legendcolor; }
set { legendcolor = value; }
}
#endregion
#region 圖例背景填充顏色
//圖例背景填充顏色
private Color legendbackgroundcolor1 = Color.White;
/// <summary>
/// 圖例背景填充顏色
/// </summary>
public Color LegendBackGroundColor1
{
get { return legendbackgroundcolor1; }
set { legendbackgroundcolor1 = value; }
}
#endregion
#region 圖例背景填充顏色
//圖例背景填充顏色
private Color legendbackgroundcolor2 = Color.White;
/// <summary>
/// 圖例背景填充顏色
/// </summary>
public Color LegendBackGroundColor2
{
get { return legendbackgroundcolor2; }
set { legendbackgroundcolor2 = value; }
}
#endregion
#region 圖例背景填充顏色
//圖例背景填充顏色
private Color legendbackgroundcolor3 = Color.White;
/// <summary>
/// 圖例背景填充顏色
/// </summary>
public Color LegendBackGroundColor3
{
get { return legendbackgroundcolor3; }
set { legendbackgroundcolor3 = value; }
}
#endregion
#region 圖例與圖表之間的距離
//圖例與圖表之間的距離
private float legendGap = 0.5f;
/// <summary>
/// 圖例與圖表之間的距離
/// </summary>
public float LegendGap
{
get { return legendGap; }
set { legendGap = value; }
}
#endregion
#region 圖例是否以水平的形式出現
//圖例是否以水平的形式出現
private bool ishstack = true;
/// <summary>
/// 圖例是否以水平的形式出現
/// </summary>
public bool IsHStack
{
get { return ishstack; }
set { ishstack = value; }
}
#endregion
#region 圖例是否降序排列
//圖例是否降序排列
private bool isreverse = false;
/// <summary>
/// 圖例是否降序排列
/// </summary>
public bool IsReverse
{
get { return isreverse; }
set { isreverse = value; }
}
#endregion
#region 圖例是否展示樣本
//圖例是否展示樣本
private bool isShowLegendSymbols = true;
/// <summary>
/// 圖例是否展示樣本
/// </summary>
public bool IsShowLegendSymbols
{
get { return isShowLegendSymbols; }
set { isShowLegendSymbols = value; }
}
#endregion
#region 圖例是否顯示陰影
//圖例是否顯示陰影
private bool isDropShadow = false;
/// <summary>
/// 圖例是否顯示陰影
/// </summary>
public bool IsDropShadow
{
get { return isDropShadow; }
set { isDropShadow = value; }
}
#endregion
#region 圖例陰影顏色
//圖例陰影顏色
private Color dropShadowColor = Color.Red;
/// <summary>
/// 圖例陰影顏色
/// </summary>
public Color DropShadowColor
{
get { return dropShadowColor; }
set { dropShadowColor = value; }
}
#endregion
#region 圖例陰影填充位置
//圖例陰影填充位置
private float dropShadowOffset = 0.009f;
/// <summary>
/// 圖例陰影填充位置
/// </summary>
public float DropShadowOffset
{
get { return dropShadowOffset; }
set { dropShadowOffset = value; }
}
#endregion
#region 是否顯示圖例邊框
private bool borervisible = false;
/// <summary>
/// 是否顯示圖例邊框
/// </summary>
public bool BorderVisible
{
get { return borervisible; }
set { borervisible = value; }
}
#endregion
#region 圖例顯示的位置
//圖例顯示的位置
private LegendPos legendpos = LegendPos.Top;
/// <summary>
/// 圖例顯示的位置
/// </summary>
public LegendPos Position
{
get { return legendpos; }
set { legendpos = value; }
}
#endregion
private void zedGraphControl1_Load(object sender, EventArgs e)
{
CreateChartAttribute();
}
#region 設置LineItem的SymbolType的類型
// 設置LineItem的SymbolType的類型
private SymbolType st = SymbolType.Circle;
/// <summary>
/// 設置LineItem的SymbolType的類型
/// </summary>
public SymbolType Type
{
get { return st; }
set { st = value; }
}
#endregion
#region 設置LineItem的SymbolTypeSize的大小
// 設置LineItem的SymbolTypeSized的大小
private float stsize = 2f;
/// <summary>
/// 設置LineItem的SymbolTypeSized的大小
/// </summary>
public float SymbolTypeSize
{
get { return stsize; }
set { stsize = value; }
}
#endregion
#region 設置LineItem的LineSize的大小
// 設置LineItem的LineSize的大小
private float linesize = 2f;
/// <summary>
/// 設置LineItem的LineSize的大小
/// </summary>
public float LineSize
{
get { return linesize; }
set { linesize = value; }
}
#endregion
#region 設置LineItem線條是否是圓滑的
//設置LineItem線條是否是圓滑的
private bool issmooth = true;
/// <summary>
/// 設置LineItem線條是否是圓滑的
/// </summary>
public bool IsSmooth
{
get { return issmooth; }
set { issmooth = value; }
}
#endregion
/// <summary>
/// 設置X軸顯示的時間是否爲爲長格式
/// </summary>
private bool longtime = false;
/// <summary>
/// 設置X軸顯示的時間是否爲爲長格式
/// </summary>
public bool LongTime
{
get { return longtime; }
set { longtime = value; }
}
/// <summary>
/// 設置X軸的步長
/// </summary>
private double step_x = 0;
/// <summary>
/// 設置X軸的步長
/// </summary>
public double Step_X
{
get { return step_x; }
set
{
step_x = value;
}
}
#region 畫曲線 參數dt 中必須有2個字段 時間、數值.
/// <summary>
/// 畫曲線 參數dt 中必須有2個字段 時間、數值.
/// </summary>
/// <param name="dt">二維表</param>
/// <param name="columndatetime">列名爲的類型爲datetime類型</param>
/// <param name="columnvalue">列的值必須是數值</param>
/// <param name="dtbig">設置X軸的最大時間</param>
/// <param name="dtsmall">設置X軸的最小時間</param>
/// <param name="LineItemName">曲線名稱</param>
/// <param name="ItemBelongY">曲線所屬於哪個Y軸(其值已經值定 1,2)</param>
/// <param name="LineColor">曲線顏色</param>
public void DarwLineItem(DataTable dt, string columndatetime, string columnvalue, DateTime dtbig, DateTime dtsmall, string LineItemName, int ItemBelongY, Color LineColor)
{
zedGraphControl1_Load(null, null);
LineItem li;
double ybig = 0;
double ysmall = 0;
double yy =0;
PointPairList ppl = new PointPairList();//把座標點放到這裏
if (dt.Rows[0][columnvalue] != DBNull.Value)
{
ybig = double.Parse(dt.Rows[0][columnvalue].ToString());
}
if (dt.Rows[0][columnvalue] != DBNull.Value)
{
ysmall = double.Parse(dt.Rows[0][columnvalue].ToString());
}
if(dt.Rows.Count>=2)
foreach(DataRow dr in dt.Rows)
{
if(dr[columnvalue]!=DBNull.Value && dr[columnvalue]>=0)
{
YY = double.Parse(dr[columnvalue].ToString());
}
esle
{
MessageBox.show("數據庫中有非法值");
}
}
if(YY > 0)
{
foreach (DataRow dr in dt.Rows)
{
if (dr[columnvalue] != DBNull.Value)
{
if (ybig < double.Parse(dr[columnvalue].ToString()))
{
ybig = double.Parse(dr[columnvalue].ToString());
}
if (ysmall > double.Parse(dr[columnvalue].ToString()))
{
ysmall = double.Parse(dr[columnvalue].ToString());
}
XDate xdate = new XDate(Convert.ToDateTime(dr[columndatetime]));
ppl.Add(xdate, double.Parse(dr[columnvalue].ToString()));
}
}
}
if (ybig == ysmall)
{
if(Ysmall>1)
{
ysmall = ysmall-(ysmall-1); //原代碼 ysmall = ysmall-1 2011-04-05 hetao改
ybig = ybig + 5; //源代碼 ybig = ybig+1 2011-04-05 hetao改
}
else
{
ysmall = ysmmll;
Ybig=Ygig+5;
}
}
ybig = ybig / 5 + ybig;
//添加曲線
li = myPane.AddCurve(LineItemName, ppl, LineColor, Type);
li.Symbol.Fill = new Fill(LineColor); //填充數據點
li.Symbol.Size = SymbolTypeSize;
if ( LongTime == true)
{
myPane.XAxis.Scale.Format = "yyyy-MM-dd HH:mm ";
}
else
{
myPane.XAxis.Scale.Format = "yyyy-MM-dd";
}
XDate x = new XDate(dtsmall);
myPane.XAxis.Scale.Min = x;
myPane.XAxis.Scale.BaseTic = x; //指明第一個主刻度標籤標記的位置
x = new XDate(dtbig);
myPane.XAxis.Scale.Max = x; //X 軸上的最大刻度
myPane.XAxis.Type = AxisType.Date; //數據顯示方式 Date按日期方式顯示
myPane.XAxis.Scale.MajorStepAuto = false;//是否自動設置大刻度步長
if (Step_X != 0)
{
myPane.XAxis.Scale.MajorStep = Step_X;
myPane.XAxis.Scale.MinorStep = Step_X;
}
li.IsOverrideOrdinal = true;//以x軸上的刻度爲準,而不是以X軸上的刻度爲0的位置開始劃 (ture 是從X軸由下向上畫,False反之)
li.Line.IsSmooth = IsSmooth;
li.Line.Width = LineSize;
if (ItemBelongY == 2)
{
li.IsY2Axis = true; 把這個曲線對應Y2軸
ISY2Visble = true;
myPane.Y2Axis.IsVisible = ISY2Visble;
if (ybig == 0 && ysmall == 0)
{
myPane.Y2Axis.Scale.Max = ybig+1;
myPane.Y2Axis.Scale.Min = ysmall;
myPane.YAxis.Scale.BaseTic = 0;
}
else
{
myPane.Y2Axis.Scale.Max = ybig;
myPane.Y2Axis.Scale.Min = ysmall;
myPane.YAxis.Scale.BaseTic = 0;//第一個主刻度從哪裏開始
}
}
else if (ItemBelongY == 1)
{
li.IsYAxis = true; 把這個曲線對應Y2軸
ISYVisble = true;
myPane.YAxis.IsVisible = ISYVisble;
if(ybig ==0 && ysmall==0)
{
myPane.YAxis.Scale.Max = ybig+1;
myPane.YAxis.Scale.Min = ysmall;
myPane.YAxis.Scale.BaseTic = 0;
}else
{
myPane.YAxis.Scale.Max = ybig;
myPane.YAxis.Scale.Min = ysmall;
myPane.YAxis.Scale.BaseTic = 0;
}
}
myPane.XAxis.Scale.FontSpec.Angle = X1ScaleAngle;
myPane.XAxis.Title.FontSpec.Size = X1TitleSize;
myPane.AxisChange();// 在數據變化時繪製圖形
this.zedGraphControl1.Refresh();
}
#endregion
#region 清空圖表中所有線圖和柱狀圖
/// <summary>
/// 清空圖表中所有線圖和柱狀圖
/// </summary>
public void LineItemList()
{
myPane.CurveList.Clear();
}
#endregion
#region 畫線段 X軸時間 ,自動獲取Y軸的最大值和最小值
/// <summary>
/// 畫線段 X軸時間,自動獲取X軸的大小值,自動獲取Y軸的最大值和最小值
/// </summary>
/// <param name="dt">二維表</param>
/// <param name="columnXname">二維表中要顯示X軸上數據的列名</param>
/// <param name="columnYname">二維表中要顯示Y軸上數據的列名</param>
/// <param name="ItemBelongY">依賴於哪個Y軸</param>
/// <param name="LineName">曲線的名字</param>
/// <param name="LineColor">曲線顏色</param>
public void CreateChartLineItem(DataTable dt, string columnXname, string columnYname, int ItemBelongY, string LineName, Color LineColor)
{
zedGraphControl1_Load(null, null);
LineItem li;
PointPairList ppl = new PointPairList();
double ybig = 0;
double ysmall = 0;
double temp = 0;
XDate xdate;
DateTime xmax;
DateTime xmin;
if (dt.Rows[0][columnYname] != DBNull.Value)
{
ybig = double.Parse(dt.Rows[0][columnYname].ToString());
ysmall = double.Parse(dt.Rows[0][columnYname].ToString());
temp = ybig;
xmax = DateTime.Parse(dt.Rows[0][columnXname].ToString());
xmin = DateTime.Parse(dt.Rows[0][columnXname].ToString());
}
else { MessageBox.Show("沒有您要的數據記錄!"); return; }
foreach (DataRow dr in dt.Rows)
{
if (dr[columnYname] != DBNull.Value)
{
if (ybig < double.Parse(dr[columnYname].ToString()))
{
ybig = double.Parse(dr[columnYname].ToString());
}
if (ysmall >= double.Parse(dr[columnYname].ToString()))
{
ysmall = double.Parse(dr[columnYname].ToString());
}
if (xmax < DateTime.Parse(dr[columnXname].ToString()))
{
xmax = DateTime.Parse(dr[columnXname].ToString());
}
if (xmin >= DateTime.Parse(dr[columnXname].ToString()))
{
xmin = DateTime.Parse(dr[columnXname].ToString());
}
if (temp == double.Parse(dr[columnYname].ToString()))
{
xdate = new XDate(DateTime.Parse((dr[columnXname].ToString())));
ppl.Add(xdate, double.Parse(dr[columnYname].ToString()));
}
else
{
{ li = myPane.AddCurve("", ppl, LineColor, Type); }
li.Symbol.Fill = new Fill(LineColor);
li.Symbol.Size = SymbolTypeSize;
li.IsOverrideOrdinal = true;//以x軸上的刻度爲準,而不是以X軸上的刻度爲0的位置開始劃
li.Line.IsSmooth = IsSmooth;
li.Line.Width = LineSize;
if (ItemBelongY == 2)
{
li.IsY2Axis = true;
ISY2Visble = true;
myPane.Y2Axis.IsVisible = ISY2Visble;
myPane.Y2Axis.Scale.Max = ybig + 1;
if (ysmall != 0)
{
myPane.Y2Axis.Scale.Min = ysmall - 1;
}
else { myPane.Y2Axis.Scale.Min = ysmall; }
}
else if (ItemBelongY == 1)
{
myPane.YAxis.Scale.Max = ybig + 1;
if (ysmall != 0)
{
myPane.YAxis.Scale.Min = ysmall - 1;
}
else
{
myPane.YAxis.Scale.Min = ysmall;
}
}
ppl = new PointPairList();
xdate = new XDate(Convert.ToDateTime(dr[columnXname]));
ppl.Add(xdate, double.Parse(dr[columnYname].ToString()));
temp = double.Parse(dr[columnYname].ToString());
}
}
}
li = myPane.AddCurve(LineName, ppl, LineColor, Type);
li.Symbol.Fill = new Fill(LineColor);
li.Symbol.Size = SymbolTypeSize;
li.IsOverrideOrdinal = true;//以x軸上的刻度爲準,而不是以X軸上的刻度爲0的位置開始劃
li.Line.IsSmooth = IsSmooth;
li.Line.Width = LineSize;
if (LongTime == true)
{
myPane.XAxis.Scale.Format = "yyyy-MM-dd HH:mm ";
}
else
{
myPane.XAxis.Scale.Format = "yyyy-MM-dd";
}
XDate x = new XDate(xmin);
myPane.XAxis.Scale.Min = x;
myPane.XAxis.Scale.BaseTic = x;
x = new XDate(xmax);
myPane.XAxis.Scale.Max = x;
myPane.XAxis.Type = AxisType.Date;
myPane.XAxis.Scale.MajorStepAuto = false;
if (Step_X != 0)
{
myPane.XAxis.Scale.MajorStep = Step_X;
myPane.XAxis.Scale.MinorStep = Step_X;
}
if (ybig == ysmall)
{
ysmall = ysmall - 1;
ybig = ybig + 1;
}
myPane.XAxis.Scale.FontSpec.Angle = X1ScaleAngle;
myPane.XAxis.Title.FontSpec.Size = X1TitleSize;
myPane.AxisChange();
this.zedGraphControl1.Refresh();
}
#endregion
#region 枚舉信息操作
public enum LegendPos
{
Top,
Left,
Right,
Bottom,
InsideTopLeft,
InsideTopRight,
InsideBotLeft,
InsideBotRight,
Float,
TopCenter,
BottomCenter,
TopFlushLeft,
BottomFlushLeft
}
#endregion
}
}
轉載:http://www.cnblogs.com/beeone/archive/2011/04/21/2023110.html