Элемент управления Visual Studio 2010 Chart: сделать ось Y целочисленным, а не десятичным - PullRequest
6 голосов
/ 01 ноября 2010

Мне нравится, как элемент управления диаграммой автоматически определяет для меня диапазон оси X на основе данных, но в этом случае данные могут быть только целыми числами.

Какой самый простой способ указать целые числа для этой оси?

alt text

Ответы [ 4 ]

4 голосов
/ 26 ноября 2013

Похоже, что вы можете сделать это, установив для свойства YValueType в любом соответствующем ряду целочисленный тип - например:

Chart.Series[0].YValueType = ChartValueType.Int32;
2 голосов
/ 17 октября 2011

Не работает для очень маленьких сумм (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;
}
2 голосов
/ 01 ноября 2010
    chartClicks.ChartAreas(0).AxisY.IntervalOffsetType = DateTimeIntervalType.Number
0 голосов
/ 01 ноября 2016
<ChartAreas>
    <asp:ChartArea Name="Default">
        <AxisY Interval="1" IntervalType="Number"></AxisY>
    </asp:ChartArea>
</ChartAreas>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...