有谁知道如何将箱形图的平均点设置为菱形而不是普通线形?
这是我想要实现的输出:
我在网上研究了很长一段时间,发现了一些属性,如点标记和标记样式,但仍然无法得到我想要的输出...
这是我的最新代码:
Chart Chart1= new Chart();
Chart1.DataSource = dt;
Chart1.Width = 800;
Chart1.Height = 490;
Chart1.Series.Add(new Series());
Chart1.Series[0].ChartType = SeriesChartType.BoxPlot;
**Chart1.Series.Add(new Series());
Chart1.Series[1].ChartType = SeriesChartType.Point;**
List<object> List1 = dt.AsEnumerable().ToList<object>();
foreach (DataRow row in dt.Rows)
{
Chart1.Series[0].Points.AddXY(row["CUSTOMER"],
new object[] { row["MIN"], row["MAX"], row["25TH_PERCENTILE"],
row["75TH_PERCENTILE"], row["AVG"], row["50TH_PERCENTILE"] });
Chart1.Series[1].Points.AddXY(row["CUSTOMER"],
new object[] { row["AVG"]});
}
Chart1.Series[0]["BoxPlotShowAverage"] = "false";
//create chartareas
ChartArea ca= new ChartArea();
ca.AxisX = new Axis();
ca.AxisY = new Axis();
//databind
Chart1.DataBind();
Chart1.Visible = true;
现在面对的问题:图表中每个系列的平均值相同,即使DataTable(dt)的每一行都有不同的平均值。
答案 0 :(得分:2)
图表特征: 支持标记:否
一种 hacky 这样做的方法是隐藏&#34; Avg&#34;从盒子图表中做:
Chart1.Series[0]["BoxPlotShowAverage"] = "false";
然后添加一个单独的Point
Series
,其中包含平均值:
Chart1.Series[1].Points.AddXY(row["Customer"], new object[] { row["Avg"] });
您将获得类似于您正在寻找的内容: