求一个柏拉图又叫 帕累托图 pareto chart 工具 支持IE8的

chenrisheng91 2014-04-25 04:33:38
...全文
379 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenrisheng91 2014-04-30
  • 打赏
  • 举报
回复
看起来你这种方法不错,不过我已经解决了。我用了fusioncharts 用这个解决了。
lyx266 2014-04-30
  • 打赏
  • 举报
回复
前台代码
<table align="center" border="0" cellpadding="0" cellspacing="0" class="TablebTitle" width="100%">
      
             <tr>
                 <td align="center">
                     
                     <asp:Chart ID="Chart1" runat="server" Width="700px" Height="350px" ImageStorageMode="UseHttpHandler" >
                         
                     </asp:Chart>
                     <div id="txt_Message" runat="server" style="vertical-align:middle; text-align:center; font-size:20px;"></div>
                 </td>
             </tr>
  </table>
后台代码

        private void DrowPlaton(DataTable tbl)
        {
            txt_Message.InnerHtml = "";
            if (tbl.Rows.Count < 1)
            {
                txt_Message.InnerHtml = "no data !!";
                Chart1.Visible = false;
                return;
            }
            string langID = Session["LangID"] == null ? "0" : Session["LangID"].ToString();
            Chart1.ChartAreas.Add(new ChartArea("DefectQty"));
            Chart1.ChartAreas[0].InnerPlotPosition.Auto = true;
            Chart1.Titles.Add("Defect ParetoChart");
            Chart1.Titles[0].Font = new Font("宋体", 14, FontStyle.Bold);
            
            Legend legend1 = new Legend("qty");
            legend1.Title = "";
            legend1.AutoFitMinFontSize = 12;
            legend1.Alignment = StringAlignment.Center;
            legend1.Docking = Docking.Right;
            Legend legend2 = new Legend("bll");
            legend2.Title = "";
            legend2.AutoFitMinFontSize = 12;
            legend2.Alignment = StringAlignment.Center;
            legend2.Docking = Docking.Right;
            Chart1.Legends.Add(legend1);
            Chart1.Legends.Add(legend2);
            Chart1.Series.Add(new Series("DefectQty"));
            Series ser_qqgzjz = Chart1.Series[0];
            ser_qqgzjz.ChartArea = "DefectQty";
            if ("0".Equals(langID))
            {
                ser_qqgzjz.Points.DataBind(tbl.Rows, "rnamb02", "rnamb04", "");
            }
            else
            {
                ser_qqgzjz.Points.DataBind(tbl.Rows, "rnamb03", "rnamb04", "");
            }
            ser_qqgzjz.IsValueShownAsLabel = true;
            Chart1.ChartAreas["DefectQty"].AxisX.MinorGrid.LineWidth = 0;
            Chart1.ChartAreas["DefectQty"].AxisX.LabelStyle.Angle = -45;
            Chart1.ChartAreas["DefectQty"].AxisX.MajorGrid.LineDashStyle = ChartDashStyle.NotSet;
            Chart1.ChartAreas["DefectQty"].AxisY.MajorGrid.LineDashStyle = ChartDashStyle.Dash;
            TowGrid(Chart1, "DefectQty", "%Efected", tbl);
        }

        private void TowGrid(Chart chart, string srcSeriesName, string destSeriesName, DataTable tbl)
        {
            string strChartArea = chart.Series[srcSeriesName].ChartArea;
            string langID = Session["LangID"] == null ? "0" : Session["LangID"].ToString();
            chart.Series[srcSeriesName].ChartType = SeriesChartType.Column;
            //chart.Series[srcSeriesName].Legend = "qty";
            chart.Series[srcSeriesName].Color = Color.FromArgb(76, 130, 190);
            Series destSeries = new Series(destSeriesName);
            chart.Series.Add(destSeries);
            destSeries.ChartType = SeriesChartType.Line;
            destSeries.Color = Color.FromArgb(160, 187, 92);
            destSeries.BorderWidth = 2;
            destSeries.ChartArea = chart.Series[srcSeriesName].ChartArea;
            destSeries.YAxisType = AxisType.Secondary;
            chart.ChartAreas[strChartArea].AxisY2.Maximum = 120;
            chart.ChartAreas[strChartArea].AxisY2.Title = "Efected(%)";
            chart.ChartAreas[strChartArea].AxisY2.TitleFont = new Font("新宋体", 10);
            destSeries.LabelFormat = "P1";
            chart.ChartAreas[strChartArea].AxisY2.MajorGrid.LineDashStyle = ChartDashStyle.NotSet;
            chart.ChartAreas[strChartArea].AxisX.LabelStyle.IsEndLabelVisible = false;
            chart.ChartAreas[strChartArea].AxisX.LabelStyle.Interval = 1;
            if ("0".Equals(langID))
            {
                chart.Series[destSeriesName].Points.DataBind(tbl.Rows, "rnamb02", "efected", "");
            }
            else
            {
                chart.Series[destSeriesName].Points.DataBind(tbl.Rows, "rnamb03", "efected", "");
            }
            chart.Series[destSeriesName].IsValueShownAsLabel = true;
            //chart.Series[destSeriesName].Legend = "bll";
            chart.Series[destSeriesName].MarkerColor = destSeries.Color = Color.FromArgb(160, 187, 92);
            chart.Series[destSeriesName].MarkerBorderColor = Color.MidnightBlue;
            chart.Series[destSeriesName].MarkerStyle = MarkerStyle.Triangle;
            chart.Series[destSeriesName].MarkerSize = 10;
            chart.Series[destSeriesName].LabelFormat = "0.#";
            chart.Series[destSeriesName].IsValueShownAsLabel = false;
            chart.Series[srcSeriesName].IsValueShownAsLabel = true;
            
        }
lyx266 2014-04-30
  • 打赏
  • 举报
回复


用.net自带的 chart控件就能弄
chenrisheng91 2014-04-30
  • 打赏
  • 举报
回复
引用 楼主 chenrisheng91 的回复:
求助
chenrisheng91 2014-04-30
  • 打赏
  • 举报
回复
版主大神求助啊。
熙风 2014-04-28
  • 打赏
  • 举报
回复
这玩意儿有点难搞

4,818

社区成员

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

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