我在上午8:00和第二次上午17:00只在图表1上需要两行。
我的MSchart输出是。
我建议的输出是
我的aspx.cs页码
IQueryable<Agile.HelpDesk.Core.Entities.Incident> incidents = new IncidentManager().GetIncidentsByDate(startDate, endDate);
Chart1.Series["Series1"].Points.Clear();
Chart1.Series["Series2"].Points.Clear();
TimeSpan tsStart = new TimeSpan(08, 00, 00);
TimeSpan tsEnd = new TimeSpan(17, 00, 00);
foreach (Agile.HelpDesk.Core.Entities.Incident item in incidents)
{
if (item.OpenDate.TimeOfDay >= tsStart && item.OpenDate.TimeOfDay <= tsEnd)
{
Chart1.Series["Series1"].YValueType = ChartValueType.Time;
//Chart1.Series["Series1"].Points.AddXY(item.OpenDate, Convert.ToDouble(string.Format("{0:HH}.{0:mm}", item.OpenDate)));
Chart1.Series["Series1"].Points.AddXY(item.OpenDate, item.OpenDate);
string dayName = item.OpenDate.ToString("dddd");
Chart1.Series["Series1"].Points[Chart1.Series["Series1"].Points.Count - 1].ToolTip = "Id : " + item.ID.ToString() + ", Open Date : " + item.OpenDate;
Chart1.Series["Series1"].Color = Color.Red;
}
else
{
Chart1.Series["Series2"].YValueType = ChartValueType.Time;
//Chart1.Series["Series2"].Points.AddXY(item.OpenDate, Convert.ToDouble(string.Format("{0:HH}.{0:mm}", item.OpenDate)));
Chart1.Series["Series2"].Points.AddXY(item.OpenDate, item.OpenDate);
Chart1.Series["Series2"].Points[Chart1.Series["Series2"].Points.Count - 1].ToolTip = "Id : " + item.ID.ToString() + ", Open Date : " + item.OpenDate;
}
}
//Chart1.Series["Series1"].YValueType = ChartValueType.Time;
//Chart1.Series["Series2"].YValueType = ChartValueType.Time;
Chart1.ChartAreas["ChartArea1"].AxisY.IntervalType = DateTimeIntervalType.Hours;
Chart1.ChartAreas["ChartArea1"].AxisY.Interval = 1;
Chart1.ChartAreas["ChartArea1"].AxisY.LabelStyle.Format = "HH:mm tt";
Chart1.ChartAreas["ChartArea1"].AxisY.Title = "Time";
Chart1.ChartAreas["ChartArea1"].AxisX.Title = "Date";
//set Chart Marker Color
Chart1.Series["Series1"].MarkerColor = Color.LightBlue;
Chart1.Series["Series2"].MarkerColor = Color.Red;
// Set point chart type
Chart1.Series["Series1"].ChartType = SeriesChartType.Point;
Chart1.Series["Series2"].ChartType = SeriesChartType.Point;
// Enable data points labels
Chart1.Series["Series1"].IsValueShownAsLabel = false;
Chart1.Series["Series2"].IsValueShownAsLabel = false;
//Chart1.Series["Series1"]["LabelStyle"] = "Center";
// Set marker size
Chart1.Series["Series1"].MarkerSize = 5;
Chart1.Series["Series2"].MarkerSize = 5;
// Set marker shape
Chart1.Series["Series1"].MarkerStyle = MarkerStyle.Circle;
Chart1.Series["Series2"].MarkerStyle = MarkerStyle.Circle;
// Enable 3D
//Chart1.ChartAreas["ChartArea1"].Area3DStyle.Enable3D = true;
UltraWebTab1.SelectedTab = 0;
UltraWebTab1.Visible = true;
.aspx页码
<asp:Chart ID="Chart1" runat="server" Width="812px" Height="696px" ImageLocation="~/temp/ChartPic_#SEQ(300,3)"
ImageType="Png" BackColor="WhiteSmoke" Palette="None" BorderColor="26, 59, 105"
BorderDashStyle="" BackSecondaryColor="White" BackGradientStyle="TopBottom" Visible="true"
BorderWidth="2" ImageStorageMode="UseImageLocation">
<Legends>
<asp:Legend Enabled="False" IsTextAutoFit="False" Name="Default" BackColor="Transparent"
Font="Trebuchet MS, 8.25pt, style=Bold">
</asp:Legend>
</Legends>
<BorderSkin SkinStyle="None"></BorderSkin>
<Series>
<asp:Series MarkerSize="10" Name="Series1" ChartType="Point" BorderColor="180, 26, 59, 105"
ShadowOffset="1" Font="Trebuchet MS, 9pt">
</asp:Series>
<asp:Series MarkerSize="10" Name="Series2" ChartType="Point" BorderColor="180, 26, 59, 105"
ShadowOffset="1" Font="Trebuchet MS, 9pt">
</asp:Series>
</Series>
<ChartAreas>
<asp:ChartArea Name="ChartArea1" BorderColor="64, 64, 64, 64" BorderDashStyle="Solid"
BackSecondaryColor="White" BackColor="Gainsboro" ShadowColor="Transparent" BackGradientStyle="TopBottom">
<Area3DStyle Rotation="10" Perspective="10" Inclination="15" IsRightAngleAxes="false"
WallWidth="0" IsClustered="False" />
<AxisY LineColor="64, 64, 64, 64" Minimum="0" Maximum="1">
<LabelStyle Font="Trebuchet MS, 8.25pt" />
<MajorGrid LineColor="64, 64, 64, 64" />
</AxisY>
<AxisX LineColor="64, 64, 64, 64">
<LabelStyle Font="Trebuchet MS, 8.25pt" />
<MajorGrid LineColor="64, 64, 64, 64" />
</AxisX>
</asp:ChartArea>
</ChartAreas>
</asp:Chart>
答案 0 :(得分:1)
您必须在图表中添加2个新的常量系列(第一个是常量= 8:00,另一个常量= 17:00)或添加一个StripLine,如下所示:
var sl = new System.Windows.Forms.DataVisualization.Charting.StripLine();
sl.IntervalOffset = 8;
chart1.ChartAreas[0].AxisY.StripLines.Add(sl);
答案 1 :(得分:1)
第三条(trippino的回答)将根据需要在16:00而不是17:00添加。一种解决方法是使用自定义标签并在8:00到17:00之间突出显示该区域。
Chart1.ChartAreas[0].AxisY.CustomLabels.Add(8, 17,"some label if needed");
trippino指出的另一个选项是在图表中添加两个新系列。一个用于8:00,另一个用于17:00。系列中点的X坐标应该是图表中从最小到最大日期的所有日期,Y坐标应该是8:00,然后是另一行的17:00。