如何使用具有不同比例的2系列数据创建图表?

时间:2017-05-16 19:02:51

标签: c# asp.net .net charts

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

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

此图形位于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

1 个答案:

答案 0 :(得分:2)

对于第二个比例,通过在图表区域上启用辅助y轴并将系列的“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版本应该可以正常工作。