1

我通过正式定义 x 和 y 轴列,使用简单的 sqldatsource 在 Asp.net 中开发了一个气泡图。现在问题是所有 vlaues 的气泡大小都相同。例如,100 的气泡大小与2000 年的气泡大小。请任何人告诉我是否存在任何属性或属性来根据值检查气泡的大小。我已经尝试了很多来找到这样的任何属性,但都是徒劳的。请帮助我

更新

 <asp:Chart ID="Chart1" runat="server" DataSourceID="SqlDataSource1" 
            Width="1115px" Height="556px" Compression="5">
            <Series>
                <asp:Series Name="Series1" XValueMember="Date" YValueMembers="Amount" 
                    ChartType="Bubble" YValuesPerPoint="2" IsValueShownAsLabel="True" 
                    IsXValueIndexed="True" MarkerSize="0" MarkerStyle="Circle" Palette="EarthTones">
                </asp:Series>
            </Series>
            <ChartAreas>
                <asp:ChartArea Name="ChartArea1" >
                </asp:ChartArea>
            </ChartAreas>
        </asp:Chart>
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
            ConnectionString="<%$ ConnectionStrings:ConnectionStringSMLAPP %>" 
            ProviderName="<%$ ConnectionStrings:ConnectionStringSMLAPP.ProviderName %>" 
            SelectCommand="SELECT DISTINCT to_char(DS_DATE,'DD MON YYYY') &quot;Date&quot;, DS_AMT &quot;Amount&quot;FROM DIESEL where ds_amt &lt; 5000 and DS_DATE in('1-APR-2011','1-DEC-2011') order by 1">
        </asp:SqlDataSource>
4

1 回答 1

1

由于您没有提供任何详细信息,您如何初始化系列很难给出具体答案,但通常图表系列具有YValuesPerPoint应设置为 2 和方法的属性,series.Points.DataBindXY()或者series.Points.AddXY()您可以提供多个 Y 值。提供的第一个 Y 值将负责气泡在 Y 轴上的位置,第二个 Y 值将负责气泡大小。

因此,要在每个系列中有一个气泡,您可以使用以下代码:

Chart chart = new Chart();
DataTable dt = GetData(); //your method to initialize data table with columns "Series", "X_value", "Y_value" and "BubbleSize_value"

foreach (DataRow row in dt.Rows)
{
    string seriesName = row["Series"].ToString();
    var series = new Series(seriesName);
    series.YValuesPerPoint = 2;
    series.ChartType = SeriesChartType.Bubble;
    series.MarkerStyle = MarkerStyle.Circle;

    series.Points.AddXY(row["X_value"], row["Y_value"], row["BubbleSize_value"]);
    chart.Series.Add(series);
}
于 2012-07-17T14:14:15.460 回答