我试图在ASP.NET图表中显示2个y轴值。我可以显示我希望看到的两个y轴,但我似乎无法将它们分成不同的颜色。
AxisY Title =“Loonies” - 我可以看到它们。 AxisY2 Title =“Toonies” - 我可以看到它们。问题是列和条形图中的条形都显示为相同的颜色。我一直在尝试不同的东西,并在谷歌搜索解决方案几个小时,但我真的卡住了。任何帮助将不胜感激。
ASPX代码
<asp:Label ID="lblChartType" runat="server" Text="Select Chart Type" Width="130"> </asp:Label>
<asp:DropDownList ID="ddlChartType" runat="server" AutoPostBack="True">
<asp:ListItem Text="Line Graph" Value="Line"></asp:ListItem>
<asp:ListItem Text="Bar Graph" Value="Bar"></asp:ListItem>
<asp:ListItem Text="Column" Value="Column"></asp:ListItem>
</asp:DropDownList>
<br /><br />
<asp:Chart ID="Chart1" runat="server" Height="275px" Width="500px">
<Titles><asp:Title Text="Coin Levels % (Last 24 Hours)" /></Titles>
<Series>
<asp:Series Name="Series1">
</asp:Series>
</Series>
<ChartAreas>
<asp:ChartArea Name="ChartArea1" >
<AxisX Title="Time"> </AxisX>
<AxisY Title="Loonies"> </AxisY>
<AxisY2 Title="Toonies"></AxisY2>
</asp:ChartArea>
</ChartAreas>
</asp:Chart>
</center>
cs代码 public partial class Charts:System.Web.UI.Page { 共享s = new Shared();
protected void Page_Load(object sender, EventArgs e)
{
Chart1.Series["Series1"].ChartType = (SeriesChartType)Enum.Parse(typeof(SeriesChartType), ddlChartType.SelectedValue);
GetChartData();
}
private void GetChartData()
{
try
{
using (SqlConnection con = new SqlConnection(s.CS))
{
SqlCommand cmd = new SqlCommand("hiddenSP", con);
cmd.CommandType = CommandType.Text;
cmd.CommandText = "hiddenSP";
Series series = Chart1.Series["Series1"];
Chart1.Series[0].XValueType = ChartValueType.Time;
Chart1.ChartAreas[0].AxisX.LabelStyle.Format = "HH:mm";
con.Open();
SqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
series.Points.AddXY(rdr["NEWSTAMP"].ToString().Replace("2016", "").Trim(), rdr["Loonies"].ToString().Replace("%","").Trim());
series.Points.AddXY(rdr["NEWSTAMP"].ToString().Replace("2016", "").Trim(), rdr["Toonies"].ToString().Replace("%", "").Trim());
}
}
}
catch (Exception ex)
{
s.WebError(ex);
}
}
}
答案 0 :(得分:0)
解决了问题!
foreach (var item in Chart1.Series[0].Points)
{
if (x==0)
{
Color c = Color.FromArgb(255, 0, 0);
item.Color = c;
x++;
}
else
{
Color c = Color.FromArgb(0, 0, 255);
item.Color = c;
x = 0;
}