我的版本是VS2010,使用chart制柱状图。图很简单,横坐标为数据种类,纵坐标为数值。但是我的数据有点多,大概20多个,导致右侧Legend面板显示不下。同时X坐标也非常拥挤,一标种类则无法看清。我也试过坐标轴的滚动条,但滚动的仅仅是坐标轴而已,右侧面板仍然无法滚动。
请问这种情况该如何解决?

解决方案 »

  1.   

    你可以把图例显示在图的下方。MSChart应该有这样的选项。你现在的矛盾是高度不够用。
    然后图中的文字说明可以去掉,就显得整洁多了。
      

  2.   

    谢谢指点,不过我仍然没找到这样的选项让legend面板显示在下方。另外我是用Series.Add添加的数据,不知道为什么柱子之间的间隔始终为零。我调整过ChartAreas[0].CursorX.Interval和ChartAreas[0].AxisX。Interval,但没有效果。
      

  3.   

    自己换了种办法勉强解决了以上问题, Series内部的Points允许多个数据。如果多个series画图,则情况是:
    series0.point0series1.point0series2.point0 【空格】 series0.point1series1.point1series2.point1.
    point之间自动会有间隔,但series之间不会有空格。如果用points画图,可以用series.Points.DataBind,虽然可以用series.Points.AddY添加数据,但是不能同时为数据添加名称。
    给每一个point命名后,用chart1.ChartAreas[0].AxisX.Interval = 1;强制每个柱下面出现X轴名称。不过右边的legend面板仍然不知道如何修改。
    如果大家有更好的建议欢迎指正。
      

  4.   

    1、legend 通过Position属性修改位置注意这四个参数都是百分比值
    2、把chart宽度搞长点可以解决,如果页面不好看 可以考虑把xy轴互换位置,高度设长点应该没问题吧
    3、设置x轴不显示chartArea.AxisX.LabelStyle.Enabled = false;x轴字不显示
    chartArea.AxisX.MajorTickMark.Size = 0;x轴刻度不显示
      

  5.   

    谢谢指点,已经解决了,用chart1.Legends[0].Docking = Docking.Bottom;可以调整位置。
    另外放上chart的msdn范例,希望能帮到其他有同样问题的朋友:
    http://archive.msdn.microsoft.com/mschart/Release/ProjectReleases.aspx?ReleaseId=4418