Как построить график с
Перейти к содержимому

Как построить график с

  • автор:

Рисование графиков в С++

Еще

Если использовать Code::Blocks и mingw, то нужно подключить библиотеку freeglut или freeglut_static (во втором случае нужно также установить макрос FREEGLUT_STATIC), а также opengl32, winmm, gdi32. Подключить в проекте заголовочный файл include/easy_plot.hpp, указать С++11 или выше.

Пример того, что может рисовать эта библиотека:

Рисование графиков в С++
Рисование графиков в С++

Рисование графиков в С++Рисование графиков в С++

Пример кода

Рисование тепловой карты

Особенности библиотеки:

  • Функция plot может принимать такие параметры, как имя окна, стиль окна (различные настройки цвета и пр., см. WindowSpec), данные графиков и стиль линий.
  • Функция draw_heatmap может принимать такие параметры, как имя окна, стиль окна (различные настройки цвета и пр., см. WindowSpec), данные массива тепловой карты типа float и размер тепловой карты.
  • Если графиков несколько, изначально они будут расположены по всему экрану равномерно.
  • Если навести курсор мыши на график, можно узнать номер линии и данные по осям X и Y.
  • Рисование графиков и тепловой карты происходит в отдельном потоке.
  • При повторном вызове функции с уже существующим именем окна график будет перерисован.
  • Можно сохранить график
  • Ключевые слова: , , , , , , , , , ,
  • хорошо
  • 27
  • 06 декабря 2019, 13:30

Еще

И зачем такие сложности. Встроенных возможностей вполне хватает и без OpenGL.

  • 06 декабря 2019, 13:34

Еще

  • 06 декабря 2019, 13:54

Еще

  • 06 декабря 2019, 16:17

Еще

  • 06 декабря 2019, 16:19

Еще

  • 06 декабря 2019, 18:06

Еще

  • 06 декабря 2019, 18:19

Еще

  • 06 декабря 2019, 14:00

Еще

  • 06 декабря 2019, 14:12

Еще

  • 06 декабря 2019, 16:59

Еще

  • 06 декабря 2019, 14:14

Еще

  • 06 декабря 2019, 14:14

Еще

  • 06 декабря 2019, 14:43

Еще

  • 06 декабря 2019, 17:00

Еще

  • 06 декабря 2019, 22:33

Еще

  • 06 декабря 2019, 15:21

Еще

  • 06 декабря 2019, 16:00

Еще

Как всё сложно у С++’ников. серьёзный подход. даже сказал бы профессиональный. На пайтон такие вещи попроще делаются.

последний раз графику использовал на c++ когда учился и писал в borland C. там это было примерно также просто как и на turbo pascal/qbasic. цикл по X, вычисление координат из функции (y) с масштабированием, постановка точки через point (ну или можно и lineto, если точек недостаточно).

  • 06 декабря 2019, 18:48

Еще

Gregori, C++ только для профессионалов.

  • 07 декабря 2019, 03:56

Еще

  • 07 декабря 2019, 12:53

Еще

elektroyar, первая жесть — это потенциально «размножающиеся» static-переменные в заголовочном файле, особенно mutex. Если я разобью свою программу на несколько модулей (файлов), каждый из которых включит заголовочный файл библиотеки, то у меня появится несколько mutex’ов, по одному на каждый модуль. Всё, защита от race condition сломана.

Добиться того, чтобы mutex все равно был только один, можно, вот пример с несколькими модулями, где показано, что из разных модулей в вашем коде получается разный адрес mutex’а, то есть, их там много.

А также дана правильная реализация, чтобы адрес был один на программу, то есть, чтобы mutex был единственным.

Вторая жесть — это то, что код не является exception-safe там, где это жизненно необходимо.

Вы защищаете mutex’ом изменения drawings. Перед изменением drawings соответствующий mutex lock’чится, после изменения — раз’lock’чивается назад. Как бы, всё хорошо. Но между этими двумя моментами вызываются функции push_back и make_shared, каждая из которых может выбросить исключение. Я, в коде своей программы, могу отловить исключения и продолжить работу дальше. Но, вот, только библиотечный код при этом не раз’lock’чит mutex, и при попытке повторно его за’lock’чить всё повиснет. Для избегания таких вещей в стандартной библиотеке специально имеется lock_guard, который раз’lock’чит mutex при любом развитии событий.

Третья жесть — вы вообще прогоняли свой же тест?
Он не падает где-то на 33-35 строке?

В функцию с переменным числом аргументов передаёте сами объекты, а в самой функции вычитываете их адреса. Но передали-то объекты, а не их адреса. Естественно, всё падает.

В функцию с переменным числом аргументов можно передавать только POD-типы, а вы аж вектор туда запихиваете. И LineSpec не является POD-типом. Чтобы он им стал, требуется оттуда выкинуть всё, что мешает скомпилировать его в pure C. Вам хочется использовать значения по умолчанию, но это можно сделать и с POD-типом, применив вспомогательную функцию. Вот набросок на эту тему. Значение последнего параметра берётся по умолчанию.

Вот здесь рекомендуют вместо функции с переменным числом аргументов использовать variadic templates или initializer_list. Но для этого, конечно, нужно владеть «шаблонной магией» хотя бы на среднем уровне.

Набросок решения с использованием variadic templates — здесь (общее количество пар заранее неизвестно).

Набросок решения с использованием initializer_list — здесь (общее количество пар в данном случае будет заранее известно).

В целом, остальное, навскидку, жестью не является, но очень много особенностей построения кода говорят о непонимании множества вещей.

Для написания библиотек, кстати, требуется более высокая квалификация, чем для написания обычных программ, потому что требуется учитывать множество вариантов, как пользователи библиотеки могут использовать её.

Создание графиков в WinForms C#

Создание графиков в WinForms C#

Доброго времени суток! В данной статье мы рассмотрим, как можно создавать графики в WinForms C#. В качестве платформы примера нужно взять .Net Framework 4.8. Далее в ссылки проекта необходимо добавить ссылку на сборку System.Windows.Forms.DataVisualization. Для этого нужно в обозревателе решений нажать правой мыши на элемент меню Ссылки и далее Добавить ссылку. В открывшемся окне необходимо найти сборку и выделить ее галочкой. В панели элементов должен появиться новый элемент — Chart. Обратите внимание, что проект должен быть для версии .Net Framework 4.*. Теперь рассмотрим пример кода:

using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;

namespace ChartsWinForms
<
public partial class MainForm : Form
<
public MainForm()
<
InitializeComponent();

// Установим палитру
chart.Palette = ChartColorPalette.SeaGreen;

// Заголовок графика
chart.Titles.Add("Посетители");

// Добавляем последовательность
for (int i = 0; i < daysOfWeek.Length; i++)
<
Series series = chart.Series.Add(daysOfWeek[i]);

// Добавляем точку
series.Points.Add(numberOfVisitors[i]);
>

Таким образом, вот так просто можно создавать графики в WinForms C#.

Как построить график в Эксель: пошаговая инструкция

Таблица – не самый доступный и понятный для пользователей способ представления данных. Иногда информацию проще проанализировать, если она показана в виде графика. Тем более что программа Excel предоставляет множество способов составления диаграмм. Рассказываем, как составить график в Эксель по таблице и изменять его настройки.

Как построить график в Эксель: пошаговая инструкция

Простой график для одной переменной

Проще всего разобраться, как построить график в Эксель по данным таблицы, состоящей всего из двух колонок. Для наглядного примера можно взять названия месяцев и объем полученной за это время прибыли. Ряд будет только один, а осей на графике — две. Строить диаграмму можно по следующей пошаговой инструкции:

  1. Выделить таблицу с данными.
  2. Перейти на вкладку «Вставка», где можно выбирать вариант диаграммы: например, простой график функции, круговой или точечный.
  3. Убедиться в том, что данные в таблице были автоматически распределены так, как это было запланировано. В данном случае ошибки нет: значения указаны по оси X, даты — по OY.

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

Перейдя в контекстном меню к пункту «Выбрать данные», можно настроить, какая информация будет отображаться. Например, для указанного примера у пользователя есть возможность выделять данные только для конкретных месяцев. Для этого достаточно убирать галочки с ненужных дат или изменить формулу в графе «Диапазон данных для диаграммы».

Стоит отметить, что построение графика по представленным в табличной форме данным обеспечит автоматическую перестройку линии при изменении информации. Например, если в показатели прибыли были внесены корректировки на основании более точных сведений, диаграмма станет другой без дополнительных действий со стороны пользователя. Точно так же изменятся и все названия, если откорректировать их на графике.

Легенду с названием графика при использовании только одного изменяющегося показателя оставлять необязательно. В современных версиях Excel имя ряда данных не будет показано на диаграмме автоматически. В более старых пакетах MS Office легенду можно удалить вручную.

Чтобы оценивать информацию на графике было проще, стоит выделить линию, в виде которой представлен ряд, и в контекстном меню указать необходимость добавления подписей. Результатом станет появление значений прямо на диаграмме — с той же точностью, с которой они указаны в таблице.

На вкладке «Конструктор» можно поменять еще больше настроек — выбрать экспресс-макет и готовый шаблон, изменить цвета и добавить дополнительные элементы графика. В том числе — подписи к осям данных, названия которых в последних версиях MS Excel вводятся вручную.

Также читайте, как сделать кнопку в Excel, чтобы быстрее перейти у нужной таблице или графику.

Как создать кнопку в Excel?

График с несколькими переменными

Узнав, как в Эксель нарисовать график при наличии только одного столбца со значениями, стоит перейти к решению более сложной задачи — составлению диаграмм, на которых будет несколько рядов.

Если рассматривать тот же пример, вместе с прибылью могут быть представлены еще накладные расходы. Принцип создания будет включать такие шаги:

  1. Выделить таблицу с данными, захватив все колонки.
  2. На вкладке «Вставка» выбрать тип диаграммы.
  3. Проверить, соответствует ли автоматически построенный программой график нужным требованиям. Если нет — изменить настройки вручную.

Для графика с двумя и большим количеством рядов данных стоит оставить «легенду» с подписями. Она позволит разобраться, каким цветом, оттенком или типом линии отмечен нужный показатель. Однако название диаграммы в этом случае придется вносить вручную — или указать в настройках, в какой ячейке таблицы расположен нужный текст.

С помощью контекстного меню на состоящем из нескольких рядов графике можно менять различные настройки, характеристики осей и линий, добавлять подписи и менять шрифты. А при изменении информации в таблице это автоматически отразится и на диаграмме. Данные, которые вводились вручную, (например, название оси или графика) придется менять тем же способом.

Как закрепить строку в Excel при прокрутке

Добавление второй оси

Иногда информация может быть представлена в таблице так, что поместить ее на одной общей диаграмме, на первый взгляд, невозможно. Если представить, что накладные расходы указаны не в рублях, а в долларах, график получится некорректным.

Можно построить две разных диаграммы для каждого ряда данных. Или перед тем, как сделать график в Экселе, пересчитать сумму по действующем курсу — но это будет не слишком правильно, если затраты определялись именно в валюте. Решение проблемы — добавить вторую ось со своими единицами измерения.

График функции в Excel: как построить?

В MS Office Excel можно построить график математической функции. Рассмотрим построение графиков на примерах.

Пример 1

Дана функция:

Нужно построить ее график на промежутке [-5;5] с шагом равным 1.

Создание таблицы

Создадим таблицу, первый столбец назовем переменная x (ячейка А1), второй — переменная y (ячейка В1). Для удобства в ячейку В1 запишем саму функцию, чтобы было понятно, какой график будем строить. Введем значения -5, -4 в ячейки А2 и А3 соответственно, выделим обе ячейки и скопируем вниз. Получим последовательность от -5 до 5 с шагом 1.

Вычисление значений функции

Нужно вычислить значения функции в данных точках. Для этого в ячейке В2 создадим формулу, соответствующую заданной функции, только вместо x будем вводить значение переменной х, находящееся в ячейке слева (-5).

Важно: для возведения в степень используется знак ^, который можно получить с помощью комбинации клавиш Shift+6 на английской раскладке клавиатуры. Обязательно между коэффициентами и переменной нужно ставить знак умножения * (Shift+8).

Ввод формулы завершаем нажатием клавиши Enter. Мы получим значение функции в точке x=-5. Скопируем полученную формулу вниз.

Мы получили последовательность значений функции в точках на промежутке [-5;5] с шагом 1.

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

Выделим диапазон значений переменной x и функции y. Перейдем на вкладку Вставка и в группе Диаграммы выберем Точечная (можно выбрать любую из точечных диаграмм, но лучше использовать вид с гладкими кривыми).

Мы получили график данной функции. Используя вкладки Конструктор, Макет, Формат, можно изменить параметры графика.

Пример 2

Даны функции:

и y=50x+2. Нужно построить графики этих функций в одной системе координат.

Создание таблицы и вычисление значений функций

Таблицу для первой функции мы уже построили, добавим третий столбец — значения функции y=50x+2 на том же промежутке [-5;5]. Заполняем значения этой функции. Для этого в ячейку C2 вводим формулу, соответствующую функции, только вместо x берем значение -5, т.е. ячейку А2. Копируем формулу вниз.

Мы получили таблицу значений переменной х и обеих функций в этих точках.

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

Для построения графиков выделяем значения трёх столбцов, на вкладке Вставка в группе Диаграммы выбираем Точечная.

Мы получили графики функций в одной системе координат. Используя вкладки Конструктор, Макет, Формат, можно изменить параметры графиков.

Последний пример удобно использовать, если нужно найти точки пересечения функций с помощью графиков. При этом можно изменить значения переменной x, выбрать другой промежуток или взять другой шаг (меньше или больше, чем 1). При этом столбцы В и С менять не нужно, диаграмму тоже. Все изменения произойдут сразу же после ввода других значений переменной x. Такая таблица является динамической.

Кратко об авторе:

Шамарина Татьяна Николаевна

Шамарина Татьяна Николаевна — учитель физики, информатики и ИКТ, МКОУ "СОШ", с. Саволенка Юхновского района Калужской области. Автор и преподаватель дистанционных курсов по основам компьютерной грамотности, офисным программам. Автор статей, видеоуроков и разработок.

Спасибо за Вашу оценку. Если хотите, чтобы Ваше имя
стало известно автору, войдите на сайт как пользователь
и нажмите Спасибо еще раз. Ваше имя появится на этой стрнице.

Понравился материал?
Хотите прочитать позже?
Сохраните на своей стене и
поделитесь с друзьями

Вы можете разместить на своём сайте анонс статьи со ссылкой на её полный текст

Ошибка в тексте? Мы очень сожалеем,
что допустили ее. Пожалуйста, выделите ее
и нажмите на клавиатуре CTRL + ENTER.

Кстати, такая возможность есть
на всех страницах нашего сайта

0 Спам
2 vladislav190989 • 21:44, 03.12.2022
0 Спам
1 vladislav190989 • 21:42, 03.12.2022

Отзывы

Егорова Елена 5.0
Наговицина Ольга Витальевна 5.0
Чазова Александра 5.0
Лосеева Татьяна Борисовна 5.0
Язенина Ольга Анатольевна 4.0
Арапханова Ашат 5.0
Дамбаа Айсуу 5.0

2007-2023 «Педагогическое сообщество Екатерины Пашковой — PEDSOVET.SU».
12+ Свидетельство о регистрации СМИ: Эл №ФС77-41726 от 20.08.2010 г. Выдано Федеральной службой по надзору в сфере связи, информационных технологий и массовых коммуникаций.
Адрес редакции: 603111, г. Нижний Новгород, ул. Раевского 15-45
Адрес учредителя: 603111, г. Нижний Новгород, ул. Раевского 15-45
Учредитель, главный редактор: Пашкова Екатерина Ивановна
Контакты: +7-920-0-777-397, info@pedsovet.su
Домен: https://pedsovet.su/
Копирование материалов сайта строго запрещено, регулярно отслеживается и преследуется по закону.

Отправляя материал на сайт, автор безвозмездно, без требования авторского вознаграждения, передает редакции права на использование материалов в коммерческих или некоммерческих целях, в частности, право на воспроизведение, публичный показ, перевод и переработку произведения, доведение до всеобщего сведения — в соотв. с ГК РФ. (ст. 1270 и др.). См. также Правила публикации конкретного типа материала. Мнение редакции может не совпадать с точкой зрения авторов.

Для подтверждения подлинности выданных сайтом документов сделайте запрос в редакцию.

О работе с сайтом

Мы используем cookie.

Публикуя материалы на сайте (комментарии, статьи, разработки и др.), пользователи берут на себя всю ответственность за содержание материалов и разрешение любых спорных вопросов с третьми лицами.

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

Если вы обнаружили, что на нашем сайте незаконно используются материалы, сообщите администратору — материалы будут удалены.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *