2010-11-01 122 views

回答

2
chartClicks.ChartAreas(0).AxisY.IntervalOffsetType = DateTimeIntervalType.Number 
2

它不工作了極少量的(1-5次點擊)。我已經解決了,像這樣:

Dictionary<string, int> clicks = new Dictionary<string, int>(); 
for (int i = 0; i < 24; i++) 
{ 
    clicks.Add(string.Format("{0:00}:00", i), 0); 
} 

foreach (DateTime dateTime in rawClicks) 
{ 
    clicks[string.Format("{0:00}:00", dateTime.Hour)]++; 
} 

Chart chart = new Chart();  
chart.ChartAreas.Add("Default"); 

Axis x = chart.ChartAreas["Default"].AxisX; 
Axis y = chart.ChartAreas["Default"].AxisY; 

x.Interval = 1; 
x.IntervalType = DateTimeIntervalType.Auto; 

chart.Series.Add("Default"); 
chart.Series["Default"]["PixelPointWidth"] = "15"; 

int maxNumberOfClicks = 0; 

for (int i = 0; i < 24; i++) 
{ 
    string key = string.Format("{0:00}:00", i); 
    chart.Series["Default"].Points.AddXY(key, clicks[key]); 

    if (maxNumberOfClicks < clicks[key]) 
    { 
     maxNumberOfClicks = clicks[key]; 
    } 
} 

y.Interval = Math.Ceiling((double)maxNumberOfClicks/(double)7); 
if (y.Interval == 0) 
{ 
    y.Interval = 1; 
} 
4

看起來你可以通過設置任何相關的一系列整數類型YValueType屬性做到這一點 - 比如:

Chart.Series[0].YValueType = ChartValueType.Int32; 
0
<ChartAreas> 
    <asp:ChartArea Name="Default"> 
     <AxisY Interval="1" IntervalType="Number"></AxisY> 
    </asp:ChartArea> 
</ChartAreas> 
+0

什麼是y軸範圍很大,比如說1到200? y軸ticks應該只在整數上,但增量應該大於1.由於這篇文章很舊,這是我不能輕易嘗試的。 – ChadD 2016-11-01 22:36:11

相關問題