Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.51/100: Рейтинг темы: голосов - 100, средняя оценка - 4.51
0 / 0 / 0
Регистрация: 18.09.2012
Сообщений: 8
1

Подписи осей Chart

18.09.2012, 16:32. Просмотров 19358. Ответов 17
Метки нет (Все метки)


Добрый день.

Прошу о помощи. Построил график Chart в VS 2010, перенес туда данные, все норм... Но никак не получается сделать подписи для осей. Не получается настроить ни частоту сетки, ни внести данные в подписи ( по оси 0X должны идти значения времени).

Заранее спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.09.2012, 16:32
Ответы с готовыми решениями:

Chart, как переместить подписи оси координат?
Здравствуйте. Компонент Chart Нужно подписи по оси Х переместить выше, к 0 по оси Y. Как это...

Не отображаются подписи осей
При выполнении никак не подписываются оси, не могу понять: что не так? Кто знает - подскажите,...

Подписи значений осей
Не подскажете, как в TChart сделать, чтобы на осях были подписаны не координаты точек серии, а...

Подписи осей на диаграмме
Всем привет! В общем нужно сделать сравнительную диаграмму (пример на рисунке). На оси Х должны...

__________________
Помогаю в написании курсовых работ и дипломов здесь.
17
2 / 2 / 1
Регистрация: 19.01.2012
Сообщений: 5
18.09.2012, 17:24 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Насколько я понял тут ссылки постить нельзя, но в мсдн есть хорошее руководство по чарт контролу на c#. В нем толково показана вся база этого элемента.
vb.net
1
2
3
4
5
6
7
8
9
10
11
' подписи к осям
Chart1.ChartAreas("Default").AxisX.Title = "Chart Axis"
 
' Шрифт подписей
Chart1.ChartAreas("Default").AxisX.TitleFont = New Font("Times New Roman", 12, FontStyle.Bold)
 
' Цвет подписей 
Chart1.ChartAreas("Default").AxisX.TitleForeColor = Color.Red 
 
' чтобы настраивать сетку вручную выключи это
Chart1.ChartAreas("Default").AxisX.IsLabelAutoFit
Похоже тебе надо было это. Тут только не время а даты.
vb.net
1
2
3
4
chart1.ChartAreas("Default").AxisX.Interval = 1
chart1.ChartAreas("Default").AxisX.IntervalType =  DateTimeIntervalType.Weeks
chart1.ChartAreas("Default").AxisX.IntervalOffset =  1
chart1.ChartAreas("Default").AxisX.IntervalOffsetType =  DateTimeIntervalType.Days
2
0 / 0 / 0
Регистрация: 18.09.2012
Сообщений: 8
18.09.2012, 18:33  [ТС] 3
Супер!!! Спасибо огромное!!! Сейчас бы еще разобраться, как сделать, чтобы он начинал все с 7 утра с шагом 15 минут....
0
2 / 2 / 1
Регистрация: 19.01.2012
Сообщений: 5
18.09.2012, 18:50 4
Там же в свойствах осей есть максимум и минимум.
А интервал как-то так:
vb.net
1
2
chart1.ChartAreas("Default").AxisX.Interval = 15
chart1.ChartAreas("Default").AxisX.IntervalType =  DateTimeIntervalType.Minutes
0
0 / 0 / 0
Регистрация: 18.09.2012
Сообщений: 8
18.09.2012, 19:04  [ТС] 5
Там, где макс и мин-вырезает кусок графика....у него шаг какой-то странный...не могу понять почему...если просто написать

vb.net
1
2
chart1.ChartAreas("Default").AxisX.Interval = 15
chart1.ChartAreas("Default").AxisX.IntervalType =  DateTimeIntervalType.Minutes
он просто весь график черным заливает и все...
0
2 / 2 / 1
Регистрация: 19.01.2012
Сообщений: 5
19.09.2012, 13:12 6
Контекст нужен. Желательно массив данных и кусок кода.
0
1 / 1 / 0
Регистрация: 25.03.2013
Сообщений: 129
19.01.2014, 21:44 7
Цитата Сообщение от Slanllbl Посмотреть сообщение
он просто весь график черным заливает и все..
у меня также весь график черным залило из -за этих 2х строчек, а без них было нормально вот сравнение:
Подписи осей Chart
0
0 / 0 / 0
Регистрация: 18.11.2010
Сообщений: 10
23.01.2014, 14:29 8
Вот так строю график: если увеличить, не появляются часы в подписи оси времени. как это исправить?
0
Миниатюры
Подписи осей Chart   Подписи осей Chart  
0 / 0 / 0
Регистрация: 01.07.2013
Сообщений: 3
25.05.2015, 21:21 9
siargy, в данный момент пытаюсь решить ту же проблему (только мне еще и минуты и секунды нужны). Уже перепробовал изменять свойства оси X (прошерстил полсотни комбинаций), менял тип данных но все бес толку полной даты и времени можно добиться только строковым значением но это ломает график. Напишите пожалуйста смогли ли вы ее решить и как.
0
0 / 0 / 0
Регистрация: 18.11.2010
Сообщений: 10
28.05.2015, 19:21 10
tanot, да, получилось - при изменении масштаба выбираю меньший шаг сетки и размерность можно устанавливать дни, часы, наверно и минуты но я не пробовал.
0
0 / 0 / 0
Регистрация: 19.12.2015
Сообщений: 2
22.12.2015, 02:07 11
В конструкторе в свойствах Chart выбираем Коллекции в ChartAreas, там же в пункте Areas снова Коллекции и вуаля - настраиваем оси как хотим. Интерфейс позволяет всё оперативно редактировать.
0
0 / 0 / 0
Регистрация: 18.11.2010
Сообщений: 10
22.12.2015, 08:46 12
хотелосьбы чтобы подпісі осей менялісь прі ізмененіі масштаба.
тогда вышш метод неработает (
0
0 / 0 / 0
Регистрация: 26.10.2016
Сообщений: 6
16.12.2016, 11:37 13
Добрый день, уважаемые. Подскажите, кто разобрался, как все-таки разместить на оси X поминутные значения.
Пытаюсь нарисовать график за сутки. по оси X - это 1440 точек. И надо чтобы они отображались в виде времени 00:00:00, 00:00:01...
Какие настройки не делал в chartarea - ничего не помогает. Кто может подсказать или скинуть кусок кода, который поможет с данной проблемой?
0
3686 / 2936 / 707
Регистрация: 02.02.2013
Сообщений: 2,822
Записей в блоге: 2
16.12.2016, 20:30 14
hearly,
Думаю, что как бы вы ни старались, не удастся впихнуть в ограниченный объем такое количество читабельных подписей. Да и нужно ли это? Для просмотра (анализа) обычно интересен только какой-либо участок графика. Предлагаю следующий подход:
• Строится график (рис. 1).
• С помощью мыши на графике выделяем нужный диапазон (рис. 2).
• Нажимаем на кнопку в левой части ScrollBar и возвращаемся к исходному графику.
• И так далее.
Кликните здесь для просмотра всего текста
vb.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Imports System.Windows.Forms.DataVisualization.Charting
'…
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    'формирование данных
    Dim rnd As New Random
    Dim myDT As New DateTime(2016, 11, 25, 0, 0, 0)
    Dim toDT As New DateTime(2016, 11, 26, 0, 0, 0)
    Dim tb As New DataTable()
    tb.Columns.Add("tstValue", System.Type.GetType("System.Int32"))
    tb.Columns.Add("tstTimeStr", System.Type.GetType("System.String"))
    Dim rr As DataRow
    Do While myDT < toDT
        rr = tb.NewRow
        rr.Item(0) = rnd.Next(10, 70)
        rr.Item(1) = myDT.ToShortTimeString
        myDT = myDT.AddMinutes(1)
        tb.Rows.Add(rr)
    Loop
    'график
    With Chart1
        .Series.Clear()
        .Series.Add("timeSp")
        .DataSource = tb
        .Series(0).XValueMember = "tstTimeStr"
        .Series(0).XValueType = DataVisualization.Charting.ChartValueType.String
        .Series(0).YValueMembers = "tstValue"
        .Series(0).ChartType = DataVisualization.Charting.SeriesChartType.Spline
        .Series(0).Color = Color.Red
        .Series(0).IsVisibleInLegend = False
        .ChartAreas(0).AxisX.Interval = 1
        .ChartAreas(0).AxisX.IsStartedFromZero = False
        .ChartAreas(0).AxisX.ScaleView.Scroll(ScrollType.First)
        .ChartAreas(0).CursorX.IsUserEnabled = True
        .ChartAreas(0).CursorX.IsUserSelectionEnabled = True
        .ChartAreas(0).AxisX.ScaleView.Zoomable = True
        .ChartAreas(0).AxisX.ScrollBar.IsPositionedInside = True
        .ChartAreas(0).AxisX.ScrollBar = New AxisScrollBar
        .ChartAreas(0).AxisX.ScrollBar.Enabled = True
        .ChartAreas(0).AxisX.ScrollBar.BackColor = Color.LightGray
        .ChartAreas(0).AxisX.ScrollBar.ButtonColor = Color.LightBlue
        .ChartAreas(0).AxisX.ScrollBar.IsPositionedInside = False
        .ChartAreas(0).AxisX.ScrollBar.Size = 15
    End With
End Sub
1
Миниатюры
Подписи осей Chart   Подписи осей Chart  
0 / 0 / 0
Регистрация: 26.10.2016
Сообщений: 6
16.12.2016, 21:21 15
Спасибо огромное за пример. Просто пришлось переписывать программу из Delphi на Visual basic. и впервые имею опыт работы в Visual studia с построением графиков. Я понимаю, что 1440 параметров на одном графике это очень много. Но у меня даже не получалось вывести время по оси X, а сам график строился...
0
0 / 0 / 0
Регистрация: 26.10.2016
Сообщений: 6
19.12.2016, 14:54 16
Не подскажете, можно ли курсором мыши двигать увеличенный график, а не только использовать полосы прокрутки?
0
3686 / 2936 / 707
Регистрация: 02.02.2013
Сообщений: 2,822
Записей в блоге: 2
19.12.2016, 19:05 17
Попробуйте так
vb.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private dragging As Boolean
Private Sub Chart1_MouseDown(sender As System.Object, e As System.Windows.Forms.MouseEventArgs) Handles Chart1.MouseDown
    If e.Button = MouseButtons.Right AndAlso Chart1.ChartAreas(0).AxisX.ScaleView.IsZoomed Then
        dragging = True
        Me.Cursor = Cursors.Hand
    Else
        dragging = False
        Me.Cursor = Cursors.Default
    End If
End Sub
Private Sub Chart1_MouseMove(sender As System.Object, e As System.Windows.Forms.MouseEventArgs) Handles Chart1.MouseMove
    If dragging Then Chart1.ChartAreas(0).AxisX.ScaleView.Scroll(e.X)
End Sub
Private Sub Chart1_MouseUp(sender As System.Object, e As System.Windows.Forms.MouseEventArgs) Handles Chart1.MouseUp
    dragging = False
    Me.Cursor = Cursors.Default
End Sub
0
-24 / 0 / 0
Регистрация: 23.05.2017
Сообщений: 59
06.01.2018, 20:45 18
как изминить стиль
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.01.2018, 20:45

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь или здесь.

DynamicDataDisplay подписи меток осей
привет. Столкнулся с проблемой в DynamicDataDisplay. Проблема в том что подписи &quot;тиков&quot; на осях...

Подписи осей и заголовок трехмерного графика
Здравствуйте! Почему матлаб не выводит название и подписи осей трехмерного графика? Вот код ...

Как сделать подписи осей на Bitmap?
Добрый вечер, форумчане. Проблема: есть график на bitmap-е и нужно сделать подписи осей + отметить...

Создание видео в Matlab, подписи осей и заголовки
Доброго всем времени суток (: У меня при создании видео из графиков возникло такое осложнение:все...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.