找回密码
 立即注册

QQ登录

只需一步,快速开始

jxlxl

论坛元老

6

主题

16

帖子

1万

积分

论坛元老

积分
12112

活字格认证

jxlxl
论坛元老   /  发表于:2012-12-26 10:01  /   查看:7307  /  回复:8
Hi all,

请问Column Chart能否设置在X轴上的两个柱状连续显示,即填充两个柱状在X轴间的间隔。




望帮忙尽快解决!

Thx!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

8 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2012-12-26 13:40:00
沙发
回复 1楼jxlxl的帖子

可以尝试以下代码:C1.Silverlight.Chart.BarColumnOptions.SetSize(this.chart, 1.0);
回复 使用道具 举报
jxlxl
论坛元老   /  发表于:2012-12-26 14:20:00
板凳
Hi iceman,

多谢你的回复!该问题已解决。还需请教个问题。

Column Chart能否根据柱状在X轴两端头的值 而不是中间的值(例上图1:00)显示?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-12-26 18:17:00
地板
回复 3楼jxlxl的帖子

jxlxl 您好,
不好意思,没能理解您的 Case,能否详细解释下?
回复 使用道具 举报
jxlxl
论坛元老   /  发表于:2012-12-26 19:21:00
5#
Hi iceman,

我想用Column Chart 去模拟Gannt Chart,Gannt Chart设置HighValuesSource和LowValuesSource就能够在它们之间填充颜色。
那使用Column Chart怎么在在它们之间填充颜色?

现在能通过设置Column Chart的宽度去实现。不知道Column Chart支持像GanntChart那样的设置?

这样的解释不知你是否清楚。
回复 使用道具 举报
jxlxl
论坛元老   /  发表于:2012-12-27 09:34:00
6#
Hi iceman,

能不能对ColumnChart中单个柱状的宽度进行设置?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-12-27 15:27:00
7#
回复 6楼jxlxl的帖子

jxlxl 你好,
请参考如下代码,看能否实现你的功能:

  1.         public MainPage()
  2.         {
  3.             InitializeComponent();

  4.             chart.BeginUpdate();

  5.             // create sample data

  6.             int cnt = 12;
  7.             double[] vals = new double[cnt];
  8.             DateTime[] times = new DateTime[cnt];

  9.             for (int i = 0; i < 12; i++)
  10.             {
  11.                 times[i] = DateTime.Now.AddMinutes(5 * i);
  12.                 vals[i] = i * i;
  13.             }

  14.             XYDataSeries ds = new XYDataSeries();
  15.             ds.ValuesSource = vals;
  16.             ds.XValuesSource = times;
  17.             ds.Loaded += new EventHandler(ds_Loaded);

  18.             chart.Data.Children.Add(ds);

  19.             chart.View.AxisX.Min = times[0].ToOADate();
  20.             chart.View.AxisX.Max = times[cnt - 1].ToOADate();

  21.             chart.View.AxisX.IsTime = true;
  22.             chart.View.AxisX.AnnoFormat = "t";

  23.             chart.EndUpdate();
  24.         }
  25.         void ds_Loaded(object sender, EventArgs e)
  26.         {
  27.             PlotElement pe = sender as PlotElement;

  28.             if (pe != null && pe.Shape is Path && ((Path)pe.Shape).Data is RectangleGeometry)
  29.             {
  30.                 Axis ax = chart.View.AxisX;
  31.                 Axis ay = chart.View.AxisY;
  32.                 double widthMinutes = 2;

  33.                 // convert width from minutes to pixels
  34.                 Point p1 = chart.View.PointFromData(
  35.                     new Point(ax.Min, ay.Min));
  36.                 Point p2 = chart.View.PointFromData(
  37.                     new Point(ax.Min + widthMinutes / 60 / 24, ay.Min));
  38.                 double w = (p2.X - p1.X) * 20; // in pixels

  39.                 RectangleGeometry rg = ((Path)pe.Shape).Data as RectangleGeometry;
  40.                 double x = rg.Rect.X + 0.5 * rg.Rect.Width;
  41.                 //rg.Rect = new Rect(x - 0.5 * w, rg.Rect.Y, w, rg.Rect.Height);
  42.                 rg.Rect = new Rect(0, 0, 1000, rg.Rect.Height);

  43.             }
  44.         }
  45.     }
复制代码
回复 使用道具 举报
jxlxl
论坛元老   /  发表于:2012-12-31 11:08:00
8#
回复 7楼iceman的帖子

Hi iceman,

能把上面的Demo发给我吗?
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-12-31 12:19:00
9#

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部