c# - 如何创建具有 2 个具有不同比例的数据系列的图表?

标签 c# asp.net .net charts

我需要开发一个图表,其中包含 2 个具有完全不同比例的数据系列。

这是 可能吗?,我查看了图表的属性,但我不知道如何查看。你能帮帮我吗?

此图形在 Excel 中。这是 E.G.我需要完成! 我想告诉你,我的问题是如何联合,因为我代码的图表已经准备好了,我只是想在一个中使用不同的尺度。

<asp:Chart ID="graf_calificacion_servicio_mensual" runat="server" Height="396px" Width="760px">
            <Series>
                <asp:Series Name="Series1" CustomProperties="DrawingStyle=Cylinder">
                </asp:Series>
            </Series>
            <ChartAreas>
                <asp:ChartArea Name="ChartArea1">
                    <AxisY IsLabelAutoFit="False" TextOrientation ="Auto"
                            TitleFont="Verdana, 10pt" Interval="Auto">
                            <LabelStyle Font="Microsoft Sans Serif" />
                    </AxisY>

                    <AxisX IsLabelAutoFit="false" LabelAutoFitMaxFontSize="10" 
                            LabelAutoFitMinFontSize="8" LabelAutoFitStyle="None" Interval="1">
                            <LabelStyle Angle ="90" Font="Microsoft Sans Serif" IsEndLabelVisible ="false" />

                    </AxisX>
                </asp:ChartArea>
            </ChartAreas>
        </asp:Chart>

enter image description here

最佳答案

对于第二个刻度,通过在图表区启用它并将系列的 y 轴类型设置为次要来使用次要 y 轴。

如果您在添加数据后执行此操作,您还需要刷新轴的比例:

   ChartArea ca = chart1.ChartAreas[0];

   Series s1 = chart1.Series[0];
   Series s2 = chart1.Series[1];

   ca.AxisY2.Enabled = AxisEnabled.True;
   s1.YAxisType = AxisType.Primary;
   s2.YAxisType = AxisType.Secondary;

   ca.RecalculateAxesScale();

请注意,您可能还想关闭网格线,因为它们往往会因不同的比例而变得困惑,或者为它们着色,甚至可能是轴本身采用系列的颜色。

为此,您需要“应用”调色板:

   chart1.ApplyPaletteColors();

   ca.AxisY.MajorGrid.LineColor = s1.Color;
   ca.AxisY2.MajorGrid.LineColor = s2.Color;

   ca.AxisY.LineColor = s1.Color;
   ca.AxisY2.LineColor = s2.Color;
   ca.AxisY.LineWidth = 2;
   ca.AxisY2.LineWidth = 2;
   ca.AxisX.MajorGrid.Enabled  = false;

enter image description here

该代码适用于 Winforms MSChart 控件,但 ASP 版本应该可以正常工作。

关于c# - 如何创建具有 2 个具有不同比例的数据系列的图表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44009559/

相关文章:

c# - 无法在 AsyncController 的构造函数中访问 HttpContext 或 Request 对象

c# - 合并两个字符串(文本文件)

c# - 将 C# 字符串数组转换为字典

asp.net - 如何在VB.net中使用字典?

.net - 如何从我的计算机上完全卸载 ClickOnce 应用程序?

c# - 如何强制控件不将点击事件传递到树上? WPF C#

javascript - 当用户从 Jquery 中的文本框按回车键时,如何只调用一个按钮单击功能?

ASP.Net - 将任何请求重定向到同一路径的另一个域

c# - 在 C# 中检查 double 是否为整数的好方法是什么?

.net - 为什么[NonSerialized]在自动实现的属性上不起作用?