none
求助:关于System.Web.Helpers.Chart的样式问题 RRS feed

  • 问题

  • MVC3下使用System.Web.Helpers.Chart这个类生成报表图片的确很方便,但是就是觉得它自动生成的图表样式不是那么尽如人意。如下:

    在X轴的数据数量大于等于10的情况下,X轴的字段显示会被自动删去几个,

    public void GetChart1(string type)
            {            
                Chart chart = new WebHelpers.Chart(500, 300, ChartTheme.Blue);
    
                //第一组数据
                chart.AddSeries(
                name: "测试数据1",    //数据名
                chartType: type,
                xValue: new[] { "Peter", "Andrew", "Julie", "Mary", "Dave" ,"Craig","Peter","SHaonian","Duan","Lee"},
                yValues: new[] { "2", "6", "4", "5", "3","8","7","6" ,"1","4"});
                
                chart.SetXAxis("名字");  //X轴标注
                chart.SetYAxis("值");    //Y轴标注
                chart.AddLegend("图列"); //图列
                chart.Write("png");      //显示图片
    
                return;
            }

    显示效果:

    我的问题就是如何处理这种情况,使得X轴能将名字全部显示出来。

    另外就是柱子的这些宽度颜色又要如何调整?


    PS:因为我要使用报表图片添加到邮件里,所以前端生成报表的方法就不要推荐了
    • 已编辑 血魂 2013年3月18日 6:23
    2013年3月18日 6:19

全部回复

  • 我自问自答第一问:自定义图表样式,在节点<AxisX>添加节点<LabelStyle>设置属性Interval="1"。另外宽度可以通过<Series>节点的CustomProperties属性来设置

    如下:

    <Chart Palette=""SemiTransparent"" BorderColor=""#000"" BorderWidth=""2"" BorderlineDashStyle=""Solid""> <ChartAreas> <ChartArea _Template_=""All"" Name=""Default"" BackColor=""#d0cbcb""> <AxisX> <MinorGrid Enabled=""False"" /> <MajorGrid Enabled=""True"" Interval=""1"" LineColor=""#4e4d4d"" /> <LabelStyle Font=""宋体, 14pt"" Interval=""1"" /> </AxisX> <AxisY> <MajorGrid Enabled=""True"" LineColor=""#4e4d4d""/> <MinorGrid Enabled=""False"" /> <LabelStyle Font=""宋体, 12pt"" /> </AxisY> </ChartArea> </ChartAreas>

    <Series>
                                                             <Series Name=""测试数据1"" ChartArea=""Default"" CustomProperties=""PixelPointWidth=20""/>
                                                        </Series>

    </Chart>




    • 已编辑 血魂 2013年3月28日 3:32
    2013年3月18日 9:07