找回密码
 立即注册

QQ登录

只需一步,快速开始

婧友521

银牌会员

28

主题

59

帖子

3423

积分

银牌会员

积分
3423

活字格认证

婧友521
银牌会员   /  发表于:2012-6-12 16:21  /   查看:7513  /  回复:6
如下图:
这个柱形图怎样能让每个对应正确的百分比?
有什么方法实现吗?
2012-06-12_161821.png

6 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2012-6-12 16:29:00
沙发
回复 1楼婧友521的帖子

测试代码:

  1.   protected void Page_Load(object sender, EventArgs e)
  2.         {
  3.             if (IsPostBack)
  4.                 return;
  5.             DataTable dt = new DataTable("Test");
  6.             DataRow dr = default(System.Data.DataRow);
  7.             dt.Columns.Add("名称");
  8.             dt.Columns.Add("数量");

  9.             dr = dt.NewRow();
  10.             dr[0] = "电器";
  11.             dr[1] = 0.8;
  12.             dt.Rows.Add(dr);

  13.             dr = dt.NewRow();
  14.             dr[0] = "服装";
  15.             dr[1] = 0.14;
  16.             dt.Rows.Add(dr);

  17.             dr = dt.NewRow();
  18.             dr[0] = "家具";
  19.             dr[1] = 0.10;
  20.             dt.Rows.Add(dr);

  21.             FarPoint.Web.Chart.BarSeries series = new FarPoint.Web.Chart.BarSeries();

  22.             series.Values.DataSource = dt;
  23.             series.Values.DataField = dt.Columns[1].ColumnName;

  24.             series.VaryColors = true;
  25.             series.CategoryNames.Add("电器");
  26.             series.CategoryNames.Add("服装");
  27.             series.CategoryNames.Add("家具");
  28.             //设置显示数值
  29.             series.LabelVisible = true;
  30.             //设置 Percentage 形式显示
  31.             series.LabelNumberFormat = "00.0%";


  32.             FarPoint.Web.Chart.YPlotArea plotArea = new FarPoint.Web.Chart.YPlotArea();
  33.             plotArea.Location = new System.Drawing.PointF(0.2F, 0.2F);
  34.             plotArea.Size = new System.Drawing.SizeF(0.6F, 0.6F);
  35.             plotArea.Series.Add(series);

  36.             LegendArea legend = new LegendArea();
  37.             legend.Location = new PointF(0.98f, 0.5f);
  38.             legend.AlignmentX = 1.0f;
  39.             legend.AlignmentY = 0.5f;

  40.             LabelArea label = new LabelArea();
  41.             label.Text = "产品分布";
  42.             label.Location = new PointF(0.5f, 0.02f);
  43.             label.AlignmentX = 0.5f;
  44.             label.AlignmentY = 0.0f;

  45.             FarPoint.Web.Chart.ChartModel model = new FarPoint.Web.Chart.ChartModel();
  46.             model.PlotAreas.Add(plotArea);
  47.             model.LegendAreas.Add(legend);
  48.             model.LabelAreas.Add(label);
  49.             
  50.             FarPoint.Web.Spread.Chart.SpreadChart chart = new FarPoint.Web.Spread.Chart.SpreadChart();
  51.             chart.ViewType = ChartViewType.View3D;
  52.             chart.Model = model;
  53.             FpSpread1.Sheets[0].Charts.Add(chart);
  54.         }
复制代码
回复 使用道具 举报
婧友521
银牌会员   /  发表于:2012-6-12 18:33:00
板凳
怎样能使y轴显示为0~100% ? 后台代码怎样设置啊?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-6-13 11:25:00
地板
回复 3楼婧友521的帖子

结合 2 # 中的 Code ,做如下更改:

  1. //设置 YPlotArea
  2.             FarPoint.Web.Chart.YPlotArea plotArea = new FarPoint.Web.Chart.YPlotArea();
  3.             //设置 Y 轴显示为 Percentage
  4.             plotArea.YAxes[0].LabelNumberFormat = "00.0%";
  5.             // 设置刻度
  6.             plotArea.YAxes[0].AutoMajorUnit = false;
  7.             plotArea.YAxes[0].AutoMaximum = false;
  8.             plotArea.YAxes[0].AutoMinimum = false;
  9.             // 设置刻度间隔为 20%
  10.             plotArea.YAxes[0].MajorUnit = 0.2;
复制代码
回复 使用道具 举报
s2110480
论坛元老   /  发表于:2013-4-12 14:46:00
5#
回复 4楼iceman的帖子

貌似现在不能用“LabelNumberFormat”这个方法了,提示使用LabelFormatter,版主能写个实例吗
回复 使用道具 举报
s2110480
论坛元老   /  发表于:2013-4-12 14:47:00
6#
回复 4楼iceman的帖子

都不知道那个方法怎么用,调了好多次,晕了
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-4-12 18:03:00
7#
回复 6楼s2110480的帖子

s2110480 你好,
请问你使用的 Spread 版本是?我使用 Spread .NET 6 可以正常设置。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部