Визуализация больших наборов данных требует, чтобы данные суммировались, связывались или дискретизировались каким-либо образом, чтобы уменьшить число точек, нанесенных на экран. В некоторых случаях функции, такие как histogram и pie интервал данные для уменьшения размера, в то время как другие функции, такие как plot и scatter используйте более комплексный подход, который избегает нанесения дубликатов пикселей на экран. Для задач, где перекрытие пикселей относится к анализу, binscatter функция также предлагает эффективный способ визуализации шаблонов направленности.
Визуализация длинных массивов не требует использования gather. MATLAB® немедленно оценивает и отображает визуализацию длинных массивов. В настоящее время вы можете визуализировать длинные массивы с помощью функций и методов в этой таблице.
| Функция | Необходимые тулбоксы | Примечания |
|---|---|---|
plot | — |
Эти функции строятся в итерациях, постепенно добавляя к графику по мере чтения дополнительных данных. Во время обновления, индикатор хода выполнения показывает долю данных, которые были нанесены. Масштабирование и панорамирование поддерживаются в процессе обновления, до завершения графика. Чтобы остановить процесс обновления, нажмите кнопку паузы в индикаторе хода выполнения. |
scatter | — | |
binscatter | — | |
histogram | — | |
histogram2 | — | |
pie | — |
Для визуализации только категориальных данных. |
binScatterPlot (Statistics and Machine Learning Toolbox) | Statistics and Machine Learning Toolbox™ |
Фигуру содержит ползунок для управления яркостью и детализацией цвета в изображении. Ползунок настраивает значение |
ksdensity (Statistics and Machine Learning Toolbox) | Statistics and Machine Learning Toolbox |
Производит оценку плотности вероятностей для данных, оцениваемую в 100 точках для одномерных данных или в 900 точках для двухмерных данных. |
datasample (Statistics and Machine Learning Toolbox) | Statistics and Machine Learning Toolbox |
|
В этом примере показано несколько различных способов визуализации длинных массивов.
Создайте datastore для airlinesmall.csv набор данных, который содержит строки данных о рейсе авиакомпании. Выберите подмножество табличных переменных для работы и удалите строки, содержащие отсутствующие значения.
ds = tabularTextDatastore('airlinesmall.csv','TreatAsMissing','NA'); ds.SelectedVariableNames = {'Year','Month','ArrDelay','DepDelay','Origin','Dest'}; T = tall(ds); T = rmmissing(T)
T =
Mx6 tall table
Year Month ArrDelay DepDelay Origin Dest
____ _____ ________ ________ _______ _______
1987 10 8 12 {'LAX'} {'SJC'}
1987 10 8 1 {'SJC'} {'BUR'}
1987 10 21 20 {'SAN'} {'SMF'}
1987 10 13 12 {'BUR'} {'SJC'}
1987 10 4 -1 {'SMF'} {'LAX'}
1987 10 59 63 {'LAX'} {'SJC'}
1987 10 3 -2 {'SAN'} {'SFO'}
1987 10 11 -1 {'SEA'} {'LAX'}
: : : : : :
: : : : : :
Круговая диаграмма рейсов по месяцам
Преобразуйте числовое Month переменная в категориальную переменную, которая отражает имя месяца. Затем постройте круговую диаграмму, показывающую, сколько рейсов в данных за каждый месяц года.
T.Month = categorical(T.Month,1:12,{'Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'})T =
Mx6 tall table
Year Month ArrDelay DepDelay Origin Dest
____ _____ ________ ________ _______ _______
1987 Oct 8 12 {'LAX'} {'SJC'}
1987 Oct 8 1 {'SJC'} {'BUR'}
1987 Oct 21 20 {'SAN'} {'SMF'}
1987 Oct 13 12 {'BUR'} {'SJC'}
1987 Oct 4 -1 {'SMF'} {'LAX'}
1987 Oct 59 63 {'LAX'} {'SJC'}
1987 Oct 3 -2 {'SAN'} {'SFO'}
1987 Oct 11 -1 {'SEA'} {'LAX'}
: : : : : :
: : : : : :
pie(T.Month)
Evaluating tall expression using the Local MATLAB Session: - Pass 1 of 2: Completed in 1.1 sec - Pass 2 of 2: Completed in 0.64 sec Evaluation completed in 2.1 sec

Гистограмма задержек
Постройте гистограмму задержек прибытия для каждого рейса в данных. Поскольку данные имеют длинный хвост, ограничьте площадь графического изображения с помощью BinLimits Пара "имя-значение".
histogram(T.ArrDelay,'BinLimits',[-50 150])Evaluating tall expression using the Local MATLAB Session: - Pass 1 of 2: Completed in 1.7 sec - Pass 2 of 2: Completed in 0.63 sec Evaluation completed in 2.8 sec

Точечная диаграмма задержек
Построение графика разброса задержек прибытия и отправления. Вы можете ожидать сильной корреляции между этими переменными, так как рейсы, которые уходят поздно, также могут прибыть поздно.
При работе с длинные массивы plot, scatter, и binscatter функции строят графики данных в итерациях, постепенно добавляя к графику по мере чтения дополнительных данных. Во время обновления в верхней части графика отображается индикатор хода выполнения, показывающий, сколько данных было нанесено. Масштабирование и панорамирование поддерживаются во время обновления до завершения графика.
scatter(T.ArrDelay,T.DepDelay) xlabel('Arrival Delay') ylabel('Departure Delay') xlim([-140 1000]) ylim([-140 1000])

Индикатор прогресса также включает кнопку Pause/Resume. Используйте кнопку, чтобы остановить обновление графика раньше, когда отобразится достаточно данных.
Подбор линии тренда
Используйте polyfit и polyval функции для наложения линейной линии тренда на график задержек прибытия и вылета.
hold on p = polyfit(T.ArrDelay,T.DepDelay,1); x = sort(T.ArrDelay,1); yp = polyval(p,x); plot(x,yp,'r-') hold off

Визуализация плотности
График поля точек точек полезно до определенного момента, но может быть трудно расшифровать информацию с графика, если точки сильно перекрываются. В этом случае он помогает визуализировать плотность точек на графике, чтобы определить тренды.
Используйте binscatter функция для визуализации плотности точек на графике прибытия и задержки вылета.
binscatter(T.ArrDelay,T.DepDelay,'XLimits',[-100 1000],'YLimits',[-100 1000]) xlim([-100 1000]) ylim([-100 1000]) xlabel('Arrival Delay') ylabel('Departure Delay')

Настройте CLim свойство осей так, чтобы все значения интервала более 150 были окрашены одинаково. Это препятствует доминированию на графике нескольких интервалов с очень большими значениями.
ax = gca; ax.CLim = [0 150];
