![](/img/trans.png)
[英]How to get date time from PointPair in X axis using ZedGraph in C#?
[英]Draw date on X axis and time on Y axis using ZedGraph and C#
在ZedGraph中,我如何在Y軸和日期上繪制時間(如00:00,02:00,04:00等)(如12月4日至11日,4月13日至4月11日,4月14日 - 11,等等)在X軸上? 條形設置已設置為BarType.Stack
。
示例代碼非常有用。
這是我構建的一個示例。 我不確定你會使用時間格式在Y軸上繪制什么樣的數據,除了累積的時間量(例如員工工作的小時數)。
ZedGraph使用XDate
格式沿軸的時間,從日期時間轉換為雙倍。 然而,在堆疊的欄中,我不確定ZedGraph是否可以正確地聚合時間(我無法讓它工作)。 因此,在我的示例中,我對Y軸使用了線性類型,並更改了格式,使其顯示為小時和分鍾。
請注意,已設置兩個軸的刻度的最小值和最大值。 這在X軸上尤其重要,因為自動設置錯誤。 我指定的其他一些設置會清除次要標記等。
這是一個示例,顯示每天三名員工工作小時數的堆積條形圖:
const int NumberOfBars = 5;
GraphPane myPane = zedGraphControl1.GraphPane;
myPane.Title.Text = "Employee Hours";
myPane.BarSettings.Type = BarType.Stack;
myPane.BarSettings.ClusterScaleWidth = 1D;
// X AXIS SETTINGS
myPane.XAxis.Title.Text = "Date";
myPane.XAxis.Type = AxisType.Date;
myPane.XAxis.Scale.Format = "dd-MMM-yy";
myPane.XAxis.Scale.MajorUnit = DateUnit.Day;
myPane.XAxis.Scale.MajorStep = 1;
myPane.XAxis.Scale.Min = new XDate(DateTime.Now.AddDays(-NumberOfBars));
myPane.XAxis.Scale.Max = new XDate(DateTime.Now);
myPane.XAxis.MajorTic.IsBetweenLabels = true;
myPane.XAxis.MinorTic.Size = 0;
myPane.XAxis.MajorTic.IsInside = false;
myPane.XAxis.MajorTic.IsOutside = true;
// Y AXIS SETTINGS
myPane.YAxis.Title.Text = "Hours Worked";
myPane.YAxis.Type = AxisType.Linear;
myPane.YAxis.Scale.Format = @"00:\0\0";
myPane.YAxis.Scale.Min = 0;
myPane.YAxis.Scale.Max = 24;
myPane.YAxis.Scale.MajorStep = 1;
myPane.YAxis.MinorTic.Size = 0;
// Construct some sample data
Random r = new Random();
List<double> DatesX = new List<double>();
double[] JohnHours = new double[NumberOfBars];
double[] JoanHours = new double[NumberOfBars];
double[] JaneHours = new double[NumberOfBars];
for (int i = 0; i < NumberOfBars; i++)
{
DatesX.Add(new XDate(DateTime.Today.AddDays(-i)));
JohnHours[i] = r.Next(1, 9);
JoanHours[i] = r.Next(1, 9);
JaneHours[i] = r.Next(1, 9);
}
myPane.AddBar("John", DatesX.ToArray(), JohnHours, Color.Red);
myPane.AddBar("Joan", DatesX.ToArray(), JoanHours, Color.Blue);
myPane.AddBar("Jane", DatesX.ToArray(), JaneHours, Color.Green);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.