Визуализация длинных массивов

Визуализация больших наборов данных требует, чтобы данные суммировались, связывались или дискретизировались каким-либо образом, чтобы уменьшить число точек, нанесенных на экран. В некоторых случаях функции, такие как histogram и pie интервал данные для уменьшения размера, в то время как другие функции, такие как plot и scatter используйте более комплексный подход, который избегает нанесения дубликатов пикселей на экран. Для задач, где перекрытие пикселей относится к анализу, binscatter функция также предлагает эффективный способ визуализации шаблонов направленности.

Визуализация длинных массивов не требует использования gather. MATLAB® немедленно оценивает и отображает визуализацию длинных массивов. В настоящее время вы можете визуализировать длинные массивы с помощью функций и методов в этой таблице.

ФункцияНеобходимые тулбоксыПримечания
plot

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

scatter
binscatter
histogram 
histogram2 
pie

Для визуализации только категориальных данных.

binScatterPlot (Statistics and Machine Learning Toolbox) Statistics and Machine Learning Toolbox™

Фигуру содержит ползунок для управления яркостью и детализацией цвета в изображении. Ползунок настраивает значение Gamma параметр коррекции изображения.

ksdensity (Statistics and Machine Learning Toolbox) Statistics and Machine Learning Toolbox

Производит оценку плотности вероятностей для данных, оцениваемую в 100 точках для одномерных данных или в 900 точках для двухмерных данных.

datasample (Statistics and Machine Learning Toolbox) Statistics and Machine Learning Toolbox

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

Длинный массив Графического изображения примеры

В этом примере показано несколько различных способов визуализации длинных массивов.

Создайте 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

Figure contains an axes. The axes contains an object of type histogram.

Точечная диаграмма задержек

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

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

scatter(T.ArrDelay,T.DepDelay)
xlabel('Arrival Delay')
ylabel('Departure Delay')
xlim([-140 1000])
ylim([-140 1000])

Figure contains an axes. The axes contains an object of type scatter.

Индикатор прогресса также включает кнопку 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

Figure contains an axes. The axes contains 2 objects of type scatter, line.

Визуализация плотности

График поля точек точек полезно до определенного момента, но может быть трудно расшифровать информацию с графика, если точки сильно перекрываются. В этом случае он помогает визуализировать плотность точек на графике, чтобы определить тренды.

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

binscatter(T.ArrDelay,T.DepDelay,'XLimits',[-100 1000],'YLimits',[-100 1000])
xlim([-100 1000])
ylim([-100 1000])
xlabel('Arrival Delay')
ylabel('Departure Delay')

Figure contains an axes. The axes contains an object of type binscatter.

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

ax = gca;
ax.CLim = [0 150];

Figure contains an axes. The axes contains an object of type binscatter.

См. также

| |

Похожие темы