Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/40: Рейтинг темы: голосов - 40, средняя оценка - 4.65
1 / 1 / 0
Регистрация: 25.04.2017
Сообщений: 156

Построение графика в Chart

13.03.2019, 18:11. Показов 9116. Ответов 18

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Работаю над программой, сделал встроенный редактор данных, можно ими пользоваться, есть проблема, нужно построить график (скрины ниже для того чтобы стало немного понятнее):
График показывает годовую выработку солнечной панели (100 вт для примера)
Данные: январь 0,19; фев. 0,29; март 0,37; апрель 0,49; май 0,57; июнь 0,58; июль 0,61; август 0,58, сентябрь 0,51, октябрь 0,38, ноябрь 0,21 декабрь 0,15
1) График меняется от города, это для одного города, а для другого например второго города, янв. 0,23; фев. 0,3; март 0,37; апр 0,4; май 0,53, июнь 0,52, июль 0,57, август 0,55, сент, 0,49 октябрь, 0,37, ноябрь 0,24, декабрь 0,17. Вот мне нужно понять как в Chart график рисовать
Потом в дальнейшем у меня есть база данных вот эти все значения это кВт, я по методу пропорции сделал формулу, для расчета каждой панели, т.е. если 100 Ваттная панель дает в январе 0,19 (к примеру), а у меня панель 320 Ватт, то нужно x=мощность моей панели*выроботку в первом месяце и разделить это все на 0,1 (панель в стандарте) и получаем мощность нашей выбранной панели за месяц. Вот нужно мне этому научиться, как строить этот график.
2) Последнее это как строить прямую в этом графике (пользователь укажет данные за лето и за зиму мне их нужно указать как один график, например зимой много, летом меньше это нужно показать тоже в этом графике)
Надеюсь кто то поймет, поможет, осталось чуть чуть сделать, я застрял, отчаяние уже.
Миниатюры
Построение графика в Chart   Построение графика в Chart   Построение графика в Chart  

0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.03.2019, 18:11
Ответы с готовыми решениями:

Построение графика с использованием элемента Chart
Здравствуйте, уважаемые форумчане! Прошу Вашей помощи в решении следующей задачи. Мне необходимо построить график, содержащий значения...

Построение графиков функций в Chart
Дело было так. Построить две функции. одну в Chart1 другую в Chart2. Методичка у меня по C# а сделать задачу надо на Basic вот я ее и...

Построение графиков chart из данных в textbox
Добрый день, уважаемы программисты! Обращаюсь к вам за помощью в связи с необходимостью быстрого построения графиков различных функций из...

18
1 / 1 / 0
Регистрация: 25.04.2017
Сообщений: 156
13.03.2019, 18:36  [ТС]
Если вдруг непонятно
Вначале один график (как на скрине в зависимости от города)
Потом после нажатия кнопки будет дальнейший расчет и там уже будет график с использованием пропорции, мне только понять как это реализовать в chart.
0
4708 / 3661 / 857
Регистрация: 02.02.2013
Сообщений: 3,518
Записей в блоге: 2
13.03.2019, 20:46
Polyana1997,
С пониманием вашего толкования задачи у меня сложности, но предлагаю реализацию своего понимания. Данные естественно случайные, а пересчет произвольный (от фонаря).
Кликните здесь для просмотра всего текста
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
Imports System.Windows.Forms.DataVisualization.Charting
Public Class Form3
    Private EI() As EnergyInformation
    Private dt() As String
    Private Sub Form3_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        setData()
        Dim ci As New Globalization.CultureInfo("ru-RU")
        Dim dtfi As Globalization.DateTimeFormatInfo = ci.DateTimeFormat
        dt = dtfi.MonthNames
        ReDim Preserve dt(11)
    End Sub
    Private Sub ListBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
        Dim tt = From t In EI Where t.town = ListBox1.SelectedItem
        Chart1.Series.Clear()
        Dim s As Series = New Series(tt(0).town & "100") With {
                                        .IsVisibleInLegend = True,
                                        .IsXValueIndexed = False,
                                        .ChartType = SeriesChartType.Line,
                                        .borderWidth = 2,
                                        .borderColor = Color.Red}
        s.Points.DataBindXY(dt, tt(0).Energy100)
        Chart1.Series.Add(s)
        s = New Series(tt(0).town & "320") With {
                                        .IsVisibleInLegend = True,
                                        .IsXValueIndexed = False,
                                        .ChartType = SeriesChartType.Line,
                                        .borderWidth = 2,
                                        .borderColor = Color.Green}
        s.Points.DataBindXY(dt, tt(0).Energy320)
        Chart1.Series.Add(s)
        With Chart1.ChartAreas(0)
            .AxisX.Minimum = 1
            .AxisX.Maximum = 12
            .AxisX.Interval = 1
            .AxisX.MinorTickMark.Interval = 1
            .AxisX.MinorTickMark.TickMarkStyle = TickMarkStyle.OutsideArea
            .AxisX.MinorTickMark.Enabled = True
            .AxisY.Interval = 0.1
        End With
    End Sub
    Private Sub setData()
        Dim r As New Random
        ReDim EI(ListBox1.Items.Count - 1)
        Dim k As Integer
        For Each tn As String In ListBox1.Items
            Dim ee As New EnergyInformation(tn)
            Dim mm100 As Double() = Enumerable.Range(0, 12).Select(Function(j) r.Next(10, 90) / 100).ToArray()
            ee.Energy100 = mm100
            Dim mm320(mm100.Length - 1) As Double
            For i = 0 To mm320.Length - 1
                mm320(i) = 320 * mm100(i) / 400 'пересчет выбран произвольно
            Next
            ee.Energy320 = mm320
            EI(k) = ee
            k += 1
        Next
    End Sub
End Class
Public Class EnergyInformation
    Public Sub New(ByVal tn As String)
        MyBase.new()
        _town = tn
    End Sub
    Public Property town As String
    Public Property Energy100 As Double()
    Public Property Energy320 As Double()
End Class
Миниатюры
Построение графика в Chart  
1
1 / 1 / 0
Регистрация: 25.04.2017
Сообщений: 156
13.03.2019, 22:55  [ТС]
ovva, Вы мне не раз помогали, Вы золотой человек.
Но мне кажется у меня бошка взорвется, как у Вас от моего толкования!
Если проще, выше есть данные за год, это для одного города, есть второй город я указал ниже. Тут все понятно. Вот нужно сделать один график при смене городов(как на скрине моем) он будет меняться(график), а вот как его сделать я не понял. В этом и проблема.
А дальше мы переходим на следующую страницу и там расчет, Там опять график, человек выбирает нужную ему солнечную панель, он указывает количество их (ну это просто я из таблицы беру мощность и умножаю на количество), получу допустим число и задам ему переменную Full.
Для того чтобы график был точным, я сделал формулу по пропорции, чтобы не запутаться напишу что где, мы умножаем мощность нашей панели на количество выработанной мощности(например 0,50) в тот месяц (например январь, там 0,23) и делим на 0,1 (100 Ватт как пример панель была взята) и получаем X=(0,5*0,23)/0,1, это наша панель выроботала за первый месяц! За январь, и так с каждым месяцем только вместо 0,23 мы ставим значение за февраль 0,29.
Потом получим график полный! Я так сам сделаю с каждым городом, мне только понять как это все занести в chart. А пока, что я изучу Ваш труд!

Добавлено через 1 час 50 минут
ovva, Изучил Ваши старания, но, что - то у меня мозгов мало, тяжело понять.
0
4708 / 3661 / 857
Регистрация: 02.02.2013
Сообщений: 3,518
Записей в блоге: 2
13.03.2019, 23:36
Цитата Сообщение от Polyana1997 Посмотреть сообщение
тяжело понять.
Добавил к коду комментарии
Кликните здесь для просмотра всего текста
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
Imports System.Windows.Forms.DataVisualization.Charting
Public Class Form3
    Private EI() As EnergyInformation 'массив объектов EnergyInformation по городам
    Private dt() As String
    Private Sub Form3_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        setData() 'моделируем данные (в вашем случае моделировать ничего не нужно, данные уже есть)
        Dim ci As New Globalization.CultureInfo("ru-RU")
        Dim dtfi As Globalization.DateTimeFormatInfo = ci.DateTimeFormat
        dt = dtfi.MonthNames
        ReDim Preserve dt(11) 'получили массив с имнами месяцев года
    End Sub
    Private Sub ListBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
        Dim tt = From t In EI Where t.town = ListBox1.SelectedItem 'определяем объект EnergyInformation в соответствии с выбранным городом
        Chart1.Series.Clear()
        Dim s As Series = New Series(tt(0).town & "100") With {
                                        .IsVisibleInLegend = True,
                                        .IsXValueIndexed = False,
                                        .ChartType = SeriesChartType.Line,
                                        .borderWidth = 2,
                                        .borderColor = Color.Red}
        s.Points.DataBindXY(dt, tt(0).Energy100)
        Chart1.Series.Add(s) 'определяем серию для объекта tt (данные Energy100) и добавляем ее к графику 
        s = New Series(tt(0).town & "320") With {
                                        .IsVisibleInLegend = True,
                                        .IsXValueIndexed = False,
                                        .ChartType = SeriesChartType.Line,
                                        .borderWidth = 2,
                                        .borderColor = Color.Green}
        s.Points.DataBindXY(dt, tt(0).Energy320)
        Chart1.Series.Add(s) 'определяем серию для объекта tt (данные Energy320) и добавляем ее к графику 
        With Chart1.ChartAreas(0)
            .AxisX.Minimum = 1
            .AxisX.Maximum = 12
            .AxisX.Interval = 1
            .AxisX.MinorTickMark.Interval = 1
            .AxisX.MinorTickMark.TickMarkStyle = TickMarkStyle.OutsideArea
            .AxisX.MinorTickMark.Enabled = True
            .AxisY.Interval = 0.1
        End With 'настройка внешнего вида
    End Sub
    Private Sub setData()
        Dim r As New Random
        ReDim EI(ListBox1.Items.Count - 1)
        Dim k As Integer
        For Each tn As String In ListBox1.Items 'цикл по городам
            Dim ee As New EnergyInformation(tn)
            'моделируем данные Energy100
            Dim mm100 As Double() = Enumerable.Range(0, 12).Select(Function(j) r.Next(10, 90) / 100).ToArray()
            ee.Energy100 = mm100
            Dim mm320(mm100.Length - 1) As Double
            'выполняем пересчет для Energy320
            For i = 0 To mm320.Length - 1
                mm320(i) = 320 * mm100(i) / 400 'пересчет выбран произвольно
            Next
            ee.Energy320 = mm320
            EI(k) = ee
            k += 1
        Next
    End Sub
End Class
Public Class EnergyInformation
    Public Sub New(ByVal tn As String)
        MyBase.new()
        _town = tn
    End Sub
    Public Property town As String 'имя города
    Public Property Energy100 As Double() 'значения выработки солнечной панели (100 вт)
    Public Property Energy320 As Double() 'значения выработки солнечной панели (320 вт), получено пересчетом от Energy100
End Class
1
1 / 1 / 0
Регистрация: 25.04.2017
Сообщений: 156
14.03.2019, 01:50  [ТС]
ovva, Я скопировал, поправил, получилось, но...
Вашу работу я изучил правда, бошка правда лопается, но ничего. Но как мне это переделать под вот это?
У меня 12 городов, всего будет 3 разных графика всего будет, я время потратил, нашел, посчитал, всего три: Январь - 0,19; Февраль - 0,29; Март - 0,37; Апрель - 0,49; Май - 0,57; Июнь - 0,58; Июль - 0,61; Август 0,58; Сентябрь - 0,51; Октябрь - 0,38; Ноябрь - 0,21; Декабрь - 0,15.
второй: Январь - 0,23; Февраль - 0,3; Март - 0,37; Апрель - 0,4; Май - 0,53; Июнь - 0,52; Июль - 0,57; Август - 0,55; Сентябрь - 0,49; Октябрь - 0,37; Ноябрь - 0,24; Декабрь - 0,17;
третий: Январь - 0,21; Февраль - 0,3; Март - 0,35; Апрель - 0,45; Май - 0,52; Июнь - 0,5; Июль - 0,54; Август - 0,52; Сентябрь - 0,46; Октябрь - 0,35; Ноябрь - 0,21; Декабрь - 0,16.
Это основной график, он меняется в зависимости от выбора города. Это все понятно, у меня получилось, но данные эти, как прикрепить не знаю.
Дальше если нажать продолжить, там будет опять график и панели, выбор их, количество их

Панель 100 ватт - дает свою мощность в зависимости от города разную мощность в зависимости от месяца. Поэтому используем пропорцию для поиска её. x=мощность выбранной панели*мощность в одном месяце/0,1 (нашу панель принятую в стандарте).
Я понял, что Вы объяснили, это рандомом строит график, интересная штука, но я не пойму как мне применить мои данные там. Я попробовал пару способов, вот уже почти 2 часа ночи, но никак вот это всё.
Я Вам в ЛС скинул видео 30 секундное, но видимо зря, я вспомнил, что Вы не отвечаете в ЛС, заранее извиняюсь.

Добавлено через 1 минуту
Я даже сделал таблицу Access одна кВт эти а другая месяцы, таких три таблицы. А вот как их в Chart прицепить это тоже стало непонятно, перерыл инет тоже не нашел. Уже от нервов сердце заболело. Вот как то так.
0
4708 / 3661 / 857
Регистрация: 02.02.2013
Сообщений: 3,518
Записей в блоге: 2
14.03.2019, 14:46
Polyana1997,
Давайте поделим задачу на части:
I.
Есть некоторые данные по месяцам (янв., …, дек.) для нескольких городов. Например, для трех городов
Москва
0.19;0.29;0.37;0.49;0.57;0.58;0.61;0.58; 0.51;0.38;0.21;0.15
Иркутск
0.23;0.30;0.37;0.40;0.53;0.52;0.57;0.55; 0.49;0.37;0.24;0.17
Якутск
0.21;0.30;0.35;0.45;0.52;0.50;0.54;0.52; 0.46;0.35;0.21;0.16
Для этих данных не вижу большого смысла заводить базу данных, думаю будет достаточно и текстового файла.
В этой части нужно:
• прочитать текстовый файл с данными
• заполнить список именами городов
• после выбора города в списке нарисовать график (по его данным)
II.
После выбора некоторых технологических параметров преобразуем ряд данных для указанного города, например
F(0.19,t1,t2,…); F(0.29,t1,t2,…); F(0.37,t1,t2,…); F(0.49,t1,t2,…); F(0.57,t1,t2,…); F(0.58,t1,t2,…); F(0.61,t1,t2,…); F(0.58,t1,t2,…); F(0.51,t1,t2,…); F(0.38,t1,t2,…); F(0.21,t1,t2,…); F(0.15,t1,t2,…)
Этот ряд выводим на график. Этот график можно совместить с графиком для непреобразованного ряда (или не совмещать).
Реализация задачи:
Кликните здесь для просмотра всего текста
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
Imports System.Windows.Forms.DataVisualization.Charting
Public Class Form4
    Private EI() As EngInfo
    Private dt() As String
    Private Sub Form4_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        getMonthArray()
        readData()
        RadioButton1.Checked = True
    End Sub
    Private Sub ListBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
        Dim tt = From t In EI Where t.town = ListBox1.SelectedItem 'определяем объект в соответствии с выбранным городом
        Dim fd() As Double
        Dim t1 As Double = 320, t2 As Double = 400
        Chart1.Series.Clear()
        Dim s1 As New Series(tt(0).town & "_Base") With {
                                .IsVisibleInLegend = True,
                                .IsXValueIndexed = False,
                                .ChartType = SeriesChartType.Spline,
                                .borderWidth = 2,
                                .borderColor = Color.Red}
        Dim s2 As New Series(tt(0).town & "_F(Base)") With {
                                        .IsVisibleInLegend = True,
                                        .IsXValueIndexed = False,
                                        .ChartType = SeriesChartType.Spline,
                                        .borderWidth = 2,
                                        .borderColor = Color.Green}
        Select Case True
            Case RadioButton1.Checked 'базовые данные из текстового файла
                s1.Points.DataBindXY(dt, tt(0).Energy100)
                Chart1.Series.Add(s1)
            Case RadioButton2.Checked 'преобразованные данные в соответствии с дополнительными параметрами (t1,t2,...)
                fd = transformation(tt(0).Energy100, t1, t2)
                s2.Points.DataBindXY(dt, fd)
                Chart1.Series.Add(s2)
            Case RadioButton3.Checked 'оба графика
                s1.Points.DataBindXY(dt, tt(0).Energy100)
                fd = transformation(tt(0).Energy100, t1, t2)
                s2.Points.DataBindXY(dt, fd)
                Chart1.Series.Add(s1)
                Chart1.Series.Add(s2)
        End Select
        With Chart1.ChartAreas(0)
            .AxisX.Minimum = 1
            .AxisX.Maximum = 12
            .AxisX.Interval = 1
            .AxisX.MinorTickMark.Interval = 1
            .AxisX.MinorTickMark.TickMarkStyle = TickMarkStyle.OutsideArea
            .AxisX.MinorTickMark.Enabled = True
            .AxisY.Interval = 0.1
            .AxisY.Maximum = 0.9
        End With
    End Sub
    Private Sub getMonthArray()
        Dim ci As New Globalization.CultureInfo("ru-RU")
        Dim dtfi As Globalization.DateTimeFormatInfo = ci.DateTimeFormat
        dt = dtfi.MonthNames
        ReDim Preserve dt(11) 'получили массив с именами месяцев года
    End Sub
    Private Sub readData()
        Dim ln() As String = IO.File.ReadAllLines("InfoForTowns.txt", System.Text.Encoding.Default) 'файл в папке с программщй
        ReDim EI(ln.Length / 2 - 1)
        Dim en As EngInfo
        For i = 0 To ln.Length - 2 Step 2
            ListBox1.Items.Add(ln(i))
            en = New EngInfo(ln(i))
            en.Energy100 = ln(i + 1).Split({";"c}).Select(Function(x) CDbl(x)).ToArray
            EI(i / 2) = en
        Next
    End Sub
    Private Function transformation(ByVal ar() As Double, ByVal t1 As Double, ByVal t2 As Double) As Double()
        Dim rr(ar.Length - 1) As Double
        For i = 0 To ar.Length - 1
            rr(i) = t1 * ar(i) / t2
        Next
        Return rr
    End Function
End Class
Public Structure EngInfo
    Public Sub New(ByVal tn As String)
        _town = tn
    End Sub
    Public Property town As String 'имя города
    Public Property Energy100 As Double() 'значения выработки солнечной панели (100 вт)
End Structure
Миниатюры
Построение графика в Chart  
Вложения
Тип файла: txt InfoForTowns.txt (208 байт, 39 просмотров)
0
1 / 1 / 0
Регистрация: 25.04.2017
Сообщений: 156
14.03.2019, 20:26  [ТС]
ovva, Ошибка вот такая, подскажите как убрать?
Я сначала думал попробую с ComboBox1, переименовал все ListBox1 на COmbobox1 ошибка, на ListBox1 поменял тоже, думал может в этом ошибка. Он не видит города или как?
Миниатюры
Построение графика в Chart   Построение графика в Chart   Построение графика в Chart  

0
1 / 1 / 0
Регистрация: 25.04.2017
Сообщений: 156
14.03.2019, 21:01  [ТС]
RadioButton я не добавлял, потом добавил но ошибка та же осталась (и код radiobutton тоже вернул)
0
4708 / 3661 / 857
Регистрация: 02.02.2013
Сообщений: 3,518
Записей в блоге: 2
14.03.2019, 21:37
1. Есть ли на форме ListBox1?
2. Файл InfoForTowns.txt находится в папке с программой (*.exe) и соответствует предложенной мной структуре?
3. Проверьте содержимое массива ln
0
1 / 1 / 0
Регистрация: 25.04.2017
Сообщений: 156
14.03.2019, 21:54  [ТС]
ovva,
Есть
Файл находиться там где нужно
Проверил, показывает Москва
показывает что ListBox1.Items выдал ошибку System.NullReferenceException, странная ерунда

Добавлено через 1 минуту
System.NullReferenceException
HResult=0x80004003
Сообщение = Ссылка на объект не указывает на экземпляр объекта.
0
4708 / 3661 / 857
Регистрация: 02.02.2013
Сообщений: 3,518
Записей в блоге: 2
14.03.2019, 22:14
Выложите ваш проект.
0
1 / 1 / 0
Регистрация: 25.04.2017
Сообщений: 156
14.03.2019, 22:27  [ТС]
ovva,
Вложения
Тип файла: rar ProgrammSolar.rar (524.7 Кб, 24 просмотров)
0
4708 / 3661 / 857
Регистрация: 02.02.2013
Сообщений: 3,518
Записей в блоге: 2
14.03.2019, 23:18
Лучший ответ Сообщение было отмечено Polyana1997 как решение

Решение

Polyana1997, подправил то, что касается вывода графика (VS2017).
Вложения
Тип файла: rar ProgrammSolar.rar (1.18 Мб, 105 просмотров)
1
1 / 1 / 0
Регистрация: 25.04.2017
Сообщений: 156
15.03.2019, 01:48  [ТС]
ovva, Все работает, запятую в блокноте вместо точки поставил и заработало!
Первая цель есть! Второе попробую сам, это вот эту пропорцию туда запихнуть, и нарисовать график в зависимости от города и выбранной панели.
А скажите, что Вы именно сделали, что заработало? Я думал что - то в коде исправили, смотрю, копирую себе, все тоже самое, ошибка тоже самая (в моем проекте который я кидал выше, ваш работает).

Добавлено через 1 час 33 минуты
ovva, Спасибо огромное!
Эта цель выполнена Вами и так как нужно!
Осталось решить последнюю задачу
VB.NET
1
2
3
4
5
6
 For i = 0 To ln.Length - 2 Step 2
            ListBox1.Items.Add(ln(i))
            en = New EngInfo(ln(i))
            en.Energy100 = ln(i + 1).Split({";"c}).Select(Function(x) CDbl(x)).ToArray
            EI(i / 2) = en
        Next
Этот цикл отвечает за перебор данных верно, из блокнота и подстановка в Chart?
Теперь я вытянул из таблицы число (мощность). Принял её как Power = Integer. И вот она дает 200 Ватт, 0,2 кВт она не выдаст никогда. Мне нужно теперь посчитать её мощность пропорцией.
Пример
Москва
0.19;0.29;0.37;0.49;0.57;0.58;0.61;0.58; 0.51;0.38;0.21;0.15
Панель наша 200 Ватт
Значит в первый месяц она выдаст
x=(0,2*0,19)/0,1; Второй месяц x=(0,2*0,29)/0,1;Третий месяц x=(0,2*0,37)/0,1 и так весь цикл по всем числам наша Power прыгает.
Вот я пытаюсь понять где график наш рисуется, как мне к этим числам прикоснуться, чтобы взаимодействовать с ними.
Power это из DataGridView, я её кликабельно присваиваю, потом график будет сам строиться от этих кликов.
Самое сложное это вот и все, тема закрыта будет.
Я не прошу Вас сильно утруждаться, Вы много сделали но хотя бы направьте.
Ещё раз спасибо за первую решенную часть!
0
4708 / 3661 / 857
Регистрация: 02.02.2013
Сообщений: 3,518
Записей в блоге: 2
15.03.2019, 12:46
Цитата Сообщение от Polyana1997 Посмотреть сообщение
А скажите, что Вы именно сделали, что заработало?
Вы слишком вольно обращаетесь с кодом. Например, те строки, что у меня размещались в обработке события ListBox1_SelectedIndexChanged, у вас оказались в процедуре Form_Load.
Цитата Сообщение от Polyana1997 Посмотреть сообщение
Этот цикл отвечает за перебор данных верно, из блокнота и подстановка в Chart?
Данный цикл
• считывает информацию из текстового файла
• добавляет имена городов в список ListBox1
• добавляет новые объекты типа EngInfo в массив EI
Цитата Сообщение от Polyana1997 Посмотреть сообщение
Вот я пытаюсь понять где график наш рисуется, как мне к этим числам прикоснуться, чтобы взаимодействовать с ними.
В данном случае график формируется в обработке события ListBox1_SelectedIndexChanged по данным из массива EI. Хотя все это можно вынести, например, под нажатие кнопки или какое-то другое событие.
График по преобразованным данным строится аналогично, только массив данных нужно предварительно преобразовать. Все это есть в моем последнем примере.
1
1 / 1 / 0
Регистрация: 25.04.2017
Сообщений: 156
15.03.2019, 14:52  [ТС]
ovva, Это моя невнимательность! Буду внимательнее!
Я ещё раз изучил предыдущую работу, там же Вы применяете t1 = 320, t2 = 400, это числа от фонаря
VB.NET
1
2
3
   fd = transformation(tt(0).Energy100, t1, t2)
                s2.Points.DataBindXY(dt, fd)
                Chart1.Series.Add(s2)
Здесь происходит перебор каждой точки из блокнота с умножением на t1, t2.
Как я понял, Enegry100 это вот эти числа, с блокнота, верно?
Я уже придумал как вытягивать из таблицы данные, ещё более удобнее, все сделал.
Сделаю через кнопку, при нажатии идет считывание мощности панели, на количество и сразу преобразование в кВт, чтобы размерность была одна и та же.
Я понял про образец, я пытаюсь разобраться но что то голова лопается, мне же не нужен новый график, s2, мне нужен тот же график s1 просто при нажатии кнопки меняется информация полностью. Те 100 Вт, улетают, появляется выбранная, со своей мощностью, и с тем преобразовании.

Добавлено через 56 минут
ovva, У меня получилось! Только когда нажимаю кнопку, сделаю очистку, и график не виден, т.е. все вверх поднимается и ничего не видно, нужно размеры автоматические сделать, как то
0
1 / 1 / 0
Регистрация: 25.04.2017
Сообщений: 156
15.03.2019, 14:56  [ТС]
ovva,
Миниатюры
Построение графика в Chart   Построение графика в Chart  
0
1 / 1 / 0
Регистрация: 25.04.2017
Сообщений: 156
15.03.2019, 16:41  [ТС]
ovva, И ещё сразу спрошу
Автоматизировать график, это понятно (Не совсем)
Там слева вверху 2 TextBox, один за зимний период
Второй за летний, пользователь указывает туда числа Например в первое 45, в летнее 78, (к примеру) это как то тоже нужно показать. У нас есть база данных за год (т.е. название месяцев) как приучить, что зима это вот эти 3 месяца, а летние тоже 3, остальные 6 куда пойдут? Но я видимо плюну и сделаю одну прямую синим цветом (Зима), одну прямую оранжевого цвета Лето и все, не буду Вас мучить и себя, просто подскажите как её нарисовать.

Добавлено через 1 час 28 минут
Задача с размерами графика решилась! Осталось 2 Textbox и все
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.03.2019, 16:41
Помогаю со студенческими работами здесь

Перенос нарисованного графика в chart
Доброго времени суток, есть программа, рисуешь на осях, получаешь его в Chart, потом идут вычисления, проблема в переносе нарисованного...

Элемент Chart - перерисовка графика
Всем, доброго дня! Вопрос в следующем, рассчитываю функцию и строю кривую при помощи Chart, но каждый раз при пересчете старая кривая...

Вывод графика в Chart по данным из таблицы БД
Здравствуйте!!! Столкнулся с проблемой вывода графика по таблице(VB 2012). Выдает ошибку: Приведение строки к типу integer является...

Построение графика в chart
Нужно построить график функции ln((x+1)/(x+2)). Когда строю график то строится только 1 часть (от минус бесконечности до 2), и не строится...

Построение графика в chart
надо построить график в Chart. как записать функцию a^x+b? a,b вводятся в едите. Пробовал написать так: Exp(x*ln(a))+b, но тут А не может...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru