mvc中用mschart多Series导致x坐标显示不全

xwty1225 2013-07-16 04:10:55
问题如下:
Series1的x轴有a,c,d,e四个数据
Series2的x轴有b,c,e,f,g五个
出来的柱状图中x轴只有五个点而不是a,b,c,d,e,f,g七个点

Series1,Series2的数据源分别为两个结构一样的DataView,绑定如下:
Chart1.Series[status30].Points.DataBind(dataView1, "byvalue", "count", "LegendText=byvalue,YValues=count,ToolTip=count");


在线等……
...全文
1111 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
xwty1225 2013-08-05
  • 打赏
  • 举报
回复
饼状图如何给图例中每个项指定颜色? 已经另开帖子: http://bbs.csdn.net/topics/390538810
xwty1225 2013-08-02
  • 打赏
  • 举报
回复
还有个问题请教: 饼状图如何给图例中每个项指定颜色?
xwty1225 2013-07-26
  • 打赏
  • 举报
回复
我原来试着用空字符串占位,不行, 刚用null,还真有效果。 谢谢了!
wo6522317 2013-07-26
  • 打赏
  • 举报
回复
不要拿数据“0”来占位,要用 空值 来占位; ========================

           DataTable dt = new DataTable();
            for (int i = 0; i < 10; i++)
            {
                dt.Columns.Add("name" + i, typeof(string));
            }
            chart1.Series[0].ChartType = SeriesChartType.Column;

            //测试数据
            DataRow dr = dt.NewRow();
            dr.ItemArray = new object[] { "王一", "赵二", "张三", "A1", "S2", "T5", "Y6", "X7", "孙九", "钱十" };
            dt.Rows.Add(dr);
            dr = dt.NewRow();
            dr.ItemArray = new object[] { null, 64, 34, 64, 33, 66, 88, 43, 83, 16 };
            dt.Rows.Add(dr);

            chart1.Series[0].IsValueShownAsLabel = true;
            chart1.ChartAreas[0].AxisX.Interval = 1;

            for (int i = 0; i < dt.Columns.Count; i++)
            {                 
                chart1.Series[0].Points.InsertXY(i, dt.Rows[0][i], dt.Rows[1][i]);
            }

            //如果是datatable(DataBindXY)方式绑定,设置Null值后添加下面代码
            chart1.Series[0].EmptyPointStyle.BorderWidth = 0;
            chart1.Series[0].EmptyPointStyle.MarkerStyle = MarkerStyle.None;
xwty1225 2013-07-25
  • 打赏
  • 举报
回复
再问一下:能不能让这些数字0不显示?
xwty1225 2013-07-25
  • 打赏
  • 举报
回复
不好意思,昨天忙,没能结贴
wo6522317 2013-07-19
  • 打赏
  • 举报
回复
很好奇你根据啥来判定处理数据源就是下策呢?
xwty1225 2013-07-19
  • 打赏
  • 举报
回复
也就是mschart处理不了这种情况, 就只能用我说的下下之策处理数据源了?! 有没有其他处理方法啊? 下周三结贴!
宝_爸 2013-07-19
  • 打赏
  • 举报
回复
引用 4 楼 xwty1225 的回复:
这样的:根据我的数据绿色的柱的横坐标有前面四个,黄色的有:HZ192,HZ26,HZ322,HZ323(显示出来有问题了,如图),红色也有错。如果在chart上没办法设置,需要处理数据源的话这个我也想到了(下下之策)。
这个看起来是数据有问题吧。每个数据源的数目要一致才可以啊。
wo6522317 2013-07-19
  • 打赏
  • 举报
回复
这不是标签出错,是你的数据有问题,假如黄色在HZ21AB不显示,你要用 null 来占位,保证每一个 series的数据个数都是一致的,这样就不会错位了。
wo6522317 2013-07-18
  • 打赏
  • 举报
回复

=======================
没有规律的话,你自己用算法来排序,设置X轴的间隔为1;


DataTable dt = new DataTable();
for (int i = 0; i < 10; i++)
{
dt.Columns.Add("name" + i, typeof(string));
}
chart1.Series[0].ChartType = SeriesChartType.Column;

//测试数据
DataRow dr = dt.NewRow();
dr.ItemArray = new object[] { "王一", "赵二", "张三", "A1", "S2", "T5", "Y6", "X7", "孙九", "钱十" };
dt.Rows.Add(dr);
dr = dt.NewRow();
dr.ItemArray = new object[] { 12, 64, 34, 64, 33, 66, 88, 43, 83, 16 };
dt.Rows.Add(dr);

chart1.ChartAreas[0].AxisX.Interval = 1;
for (int i = 0; i < dt.Columns.Count; i++)
{
chart1.Series[0].Points.InsertXY(i, dt.Rows[0][i], dt.Rows[1][i]);
}
xwty1225 2013-07-18
  • 打赏
  • 举报
回复
这样的:根据我的数据绿色的柱的横坐标有前面四个,黄色的有:HZ192,HZ26,HZ322,HZ323(显示出来有问题了,如图),红色也有错。如果在chart上没办法设置,需要处理数据源的话这个我也想到了(下下之策)。

xwty1225 2013-07-17
  • 打赏
  • 举报
回复
x轴标签没有全部显示 若是X轴标签的话,除非你设置按一定间隔显示,否则是控件自己默认的方式。 这个怎么做,我报表的x轴标签是一组没有规律的字符串
wo6522317 2013-07-17
  • 打赏
  • 举报
回复
数据?还是X轴的标签? 若有两个 series,在柱状图上数据有可能是被覆盖掉; 若是X轴标签的话,除非你设置按一定间隔显示,否则是控件自己默认的方式。

4,816

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧