Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# NET图表控件,是否可以在饼图上使用渐变?_C#_Asp.net_Asp.net Charts - Fatal编程技术网

C# NET图表控件,是否可以在饼图上使用渐变?

C# NET图表控件,是否可以在饼图上使用渐变?,c#,asp.net,asp.net-charts,C#,Asp.net,Asp.net Charts,我正在使用ASP.NET图表控件制作图表原型。我有以下代码来生成我的图表。我正试图尽可能接近客户的品牌指南。品牌指南在饼图部分使用渐变。在使用自定义颜色时,这是否可行 /// <summary> /// Create an image of a chart from the given data /// </summary> /// <param name="data">Dictionary of data, labels as

我正在使用ASP.NET图表控件制作图表原型。我有以下代码来生成我的图表。我正试图尽可能接近客户的品牌指南。品牌指南在饼图部分使用渐变。在使用自定义颜色时,这是否可行

    /// <summary>
    /// Create an image of a chart from the given data
    /// </summary>
    /// <param name="data">Dictionary of data, labels as key and value as value.</param>
    /// <returns>The bytes of an image</returns>
    private Byte[] CreatePieChart(Dictionary<string,string> data)
    {
        //Set up the chart
        var chart = new Chart
        {
            Width = 550,
            Height = 400,
            RenderType = RenderType.BinaryStreaming,
            AntiAliasing = AntiAliasingStyles.All,
            TextAntiAliasingQuality = TextAntiAliasingQuality.High
        };

        //Add the title
        chart.Titles.Add("Chart 1");
        chart.Titles[0].Font = new Font("Arial", 16f);

        //Set up labels etc
        chart.ChartAreas.Add("");
        chart.ChartAreas[0].AxisX.TitleFont = new Font("Arial", 12f);
        chart.ChartAreas[0].AxisY.TitleFont = new Font("Arial", 12f);
        chart.ChartAreas[0].AxisX.LabelStyle.Font = new Font("Arial", 10f);
        chart.ChartAreas[0].AxisX.LabelStyle.Angle = -90;
        chart.ChartAreas[0].BackColor = Color.White;

        //Set up the series and specify Pie chart
        chart.Series.Add("");
        chart.Series[0].ChartType = SeriesChartType.Pie;
        chart.Series[0].SetCustomProperty("PieLabelStyle", "outside");
        chart.Series[0].IsValueShownAsLabel = true;
        chart.Series[0].BackGradientStyle = GradientStyle.Center;

        //MAke the chart 3D
        chart.ChartAreas[0].Area3DStyle.Enable3D = true;
        //chart.ChartAreas[0].Area3DStyle.Perspective = 75;
        chart.ChartAreas[0].Area3DStyle.Inclination = 0;

        //Loop over the data and add it to the series
        foreach (var item in data)
        {
            chart.Series[0].Points.AddXY(item.Key, Convert.ToDouble(item.Value));
        }

        //Add a legend
        chart.Legends.Add("");
        chart.Legends[0].InsideChartArea = "";

        Color[] myPalette = new Color[6]{ 
             Color.FromArgb(255,101,187,226), 
             Color.FromArgb(255,253,214,91), 
             Color.FromArgb(255,38,190,151), 
             Color.FromArgb(255,253,183,101),
             Color.FromArgb(255,218,143,183),
            Color.FromArgb(255,242,242,242)};

        chart.Palette = ChartColorPalette.None;
        chart.PaletteCustomColors = myPalette;

        byte[] chartBytes;

        //Write the chart image to a stream and get the bytes
        using (var chartimage = new MemoryStream())
        {
            chart.SaveImage(chartimage, ChartImageFormat.Png);
            chartBytes = chartimage.GetBuffer();
        }

        return chartBytes;
    }
//
///根据给定数据创建图表的图像
/// 
///数据字典,标签为键,值为值。
///图像的字节数
专用字节[]CreatePieChart(字典数据)
{
//设置图表
var图表=新图表
{
宽度=550,
高度=400,
RenderType=RenderType.BinaryStreaming,
抗锯齿=抗锯齿样式。全部,
TextAntiAliasingQuality=TextAntiAliasingQuality.High
};
//添加标题
图.标题.添加(“图1”);
图表标题[0]。字体=新字体(“Arial”,16f);
//设置标签等
图表。图表区域。添加(“”);
chart.ChartAreas[0].axix.TitleFont=新字体(“Arial”,12f);
chart.ChartAreas[0].AxisY.TitleFont=新字体(“Arial”,12f);
chart.ChartAreas[0].axix.LabelStyle.Font=新字体(“Arial”,10f);
chart.ChartAreas[0].AxisX.LabelStyle.Angle=-90;
chart.ChartAreas[0]。背景色=颜色。白色;
//设置系列并指定饼图
图表.系列.添加(“”);
chart.Series[0]。ChartType=SerieChartType.Pie;
chart.Series[0].SetCustomProperty(“PieLabelStyle”、“outside”);
chart.Series[0]。IsValueShownAsLabel=true;
chart.Series[0]。BackGradientStyle=GradientStyle.Center;
//将图表制作为3D
chart.ChartAreas[0].Area3DStyle.Enable3D=true;
//chart.ChartAreas[0].Area3DStyle.Perspective=75;
chart.ChartAreas[0].Area3DStyle.Indeption=0;
//循环遍历数据并将其添加到序列中
foreach(数据中的var项)
{
chart.Series[0].Points.AddXY(item.Key,Convert.ToDouble(item.Value));
}
//添加一个图例
图表。图例。添加(“”);
图表。图例[0]。InsideChartArea=“”;
颜色[]我的调色板=新颜色[6]{
颜色。来自argb(255101187226),
颜色。来自argb(255253214,91),
颜色。来自argb(255,38190151),
颜色。来自argb(255253183101),
颜色。来自argb(255218143183),
Color.FromArgb(255242242242)};
chart.palete=chartcolorplete.None;
chart.PaletteCustomColors=myPalette;
字节[]个字节;
//将图表图像写入流并获取字节
使用(var chartimage=new MemoryStream())
{
SaveImage(chartimage,ChartImageFormat.Png);
chartBytes=chartimage.GetBuffer();
}
返回chartBytes;
}

使用ASP.NET图表可以在饼图上获得渐变

以下是相关内容:

        Color[] myPalette = new Color[5]{ 
             Color.FromArgb(255,101,187,226), 
             Color.FromArgb(255,253,214,91), 
             Color.FromArgb(255,38,190,151), 
             Color.FromArgb(255,253,183,101),
             Color.FromArgb(255,218,143,183)};

        chart.Palette = ChartColorPalette.None;
        chart.PaletteCustomColors = myPalette;

        //Loop over the data and add it to the series
        int i = 0;
        foreach (var item in data)
        {
            chart.Series[0].Points.AddXY(item.Key, Convert.ToDouble(item.Value));
            chart.Series[0].Points[i].BackGradientStyle = GradientStyle.Center;
            chart.Series[0].Points[i].Color = myPalette[i];
            chart.Series[0].Points[i].BackSecondaryColor = LightenColor(myPalette[i]);
            //chart.Series[0].Points[i].SetCustomProperty("Exploded","true");

            i++;
        }
原型代码。产生一个可通过的梯度