plot::Bars2d

2D столбчатая диаграмма

Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.

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

Синтаксис

plot::Bars2d([[a1, a2, …], [b1, b2, …], …], <a = amin .. amax>, options)
plot::Bars2d([a1, a2, …], <a = amin .. amax>, options)

Описание

plot::Bars2d([[ a1, a2, ...], [ b1, b2, ...], ...]) генерирует столбчатую диаграмму с высотами панели a1, b1, ..., a2, b2, ....

plot::Bars2d([ a1, a2, ...]) создает столбчатую диаграмму с панелями высоты a1, a2, …

С plot::Bars2d([[ a1, a2,...], [ b1, b2,...], ...]), панели построены в порядке a1, b1, …, разрыв, a2, b2, … См. пример 2.

Горизонтальными положениями и ширинами панелей могут управлять атрибуты BarCenters и BarWidths, соответственно.

Атрибут GroupStyle предоставляет группировать возможности.

Атрибуты

АтрибутЦельЗначение по умолчанию
AffectViewingBoxвлияние объектов на ViewingBox из сценыTRUE
AntiAliasedсглаженные линии и точки?FALSE
BarStyleстиль отображения столбиковых диаграммBoxes
BarWidthsширины панелей[[1.0]]
BarCentersположение панелей 
Colorосновной цвет 
Colorsсписок цветов, чтобы использовать[RGB::Blue, RGB::Red, RGB::Green, RGB::MuPADGold, RGB::Orange, RGB::Cyan, RGB::Magenta, RGB::LimeGreen, RGB::CadmiumYellowLight, RGB::AlizarinCrimson, RGB::Aqua, RGB::Lavender, RGB::SeaGreen, RGB::AureolineYellow, RGB::Banana, RGB::Beige, RGB::YellowGreen, RGB::Wheat, RGB::IndianRed, RGB::Black]
Data(статистические) данные, чтобы построить 
DrawModeориентация полей и панелейVertical
Filledзаполненные или прозрачные области и поверхностиTRUE
FillPatternsсписок области заполняет типы[Solid]
Framesколичество систем координат в анимации50
GroupStyleгруппировка опций в 2D столбиковых диаграммахMultipleBars
Legendделает запись легенды 
LegendTextкороткий объяснительный текст для легенды 
LegendEntryдобавить этот объект в легенду?FALSE
LineColorцвет линийRGB::Black
LineWidthширина линий0.35
LineStyleтело, подчеркнутые штриховой линией или пунктирные линии?Solid
LinesVisibleвидимость линийTRUE
Nameимя объекта графика (для браузера и легенды) 
ParameterEndзакончите значение параметра анимации 
ParameterNameимя параметра анимации 
ParameterBeginначальное значение параметра анимации 
ParameterRangeобласть значений параметра анимации 
PointSizeразмер точек1.5
PointStyleстиль презентации точекFilledCircles
Shadowsотобразить “тени” для столбиковых диаграмм?FALSE
TimeEndвремя окончания анимации10.0
TimeBeginвремя начала анимации0.0
TimeRangeоперативный промежуток анимации0.0.. 10.0
Titleобъектный заголовок 
TitleFontшрифт объектных заголовков[" sans-serif ", 11]
TitlePositionположение объектных заголовков 
TitleAlignmentвыравнивание по горизонтали заголовков w.r.t. их координатыCenter
TitlePositionXположение объектных заголовков, x компонент 
TitlePositionYположение объектных заголовков, y компонент 
VisibleвидимостьTRUE
VisibleAfterобъект, видимый после этой временной стоимости 
VisibleBeforeобъект, видимый до этой временной стоимости 
VisibleFromToобъект, видимый в это время, располагается 
VisibleAfterEndобъект, видимый после его законченного времени анимации?TRUE
VisibleBeforeBeginобъект, видимый перед его временем анимации, запускается?TRUE

Примеры

Пример 1

Учитывая один список значений, plot::Bars2d панели графиков соответствующей высоты, заполненной единогласно в одном цвете:

plot(plot::Bars2d([1, 2, 3, 4, 5]))

Пример 2

Когда спросили построить список списков значений, plot::Bars2d сгруппирует первые записи всех списков, вторые записи и так далее, с маленьким разрывом между группами:

plot(plot::Bars2d([[ 5, 10, 24, -3],
                   [ 6,  5,  2, 18],
                   [19, 45, 12,-10]]))

Пример 3

Внешним видом графиков можно управлять со многими атрибутами. Например, Colors принимает список цветов для панелей и Shadows включает “тени”, производя небольшое впечатление глубины:

plot(plot::Bars2d([[ 5, 10, 24,  -3],
                   [ 6,  5,  2,  18],
                   [19, 45, 12, -10]], 
                  Colors = [RGB::Red, RGB::Green, RGB::Blue],
                  Shadows = TRUE))

Используя DrawMode, plot::Bars2d может быть сделан чертить горизонтальные планки вместо вертикальных единиц:

plot(plot::Bars2d([[ .5, 1.0, 2.4,  -.3], 
                   [ .6,  .5,  .2,  1.8], 
                   [1.9, 4.5, 1.2, -1.0]], 
                  Colors = [RGB::Red,RGB::Green,RGB::Blue],
                  Shadows = TRUE, DrawMode = Horizontal))

BarStyle используется, чтобы построить точки или линии вместо прямоугольников:

plot(plot::Bars2d([[ 5, 10, 24,  -3],
                   [ 6,  5,  2,  18],
                   [19, 45, 12, -10]], BarStyle = Lines))

Пример 4

Мы демонстрируем альтернативный grouping styles:

plot(plot::Bars2d([[ 5, 10, 15, 20],
                   [ 6,  5,  4,  3],
                   [10,  5,  3,  1]], GroupStyle = MultipleBars))

plot(plot::Bars2d([[ 5, 10, 15, 20],
                   [ 6,  5,  4,  3],
                   [10,  5,  3,  1]], GroupStyle = SingleBars))

Пример 5

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

plot(plot::Bars2d([[binomial(15,i)] $ i = 0..15],
                  Colors = [[1-j/15, j/15, 0.9] $ j = 0..15]),
            XAxisVisible)

Пример 6

plot::Bars2d принимает вход в форме списков (как выше), как матрица, или как одна - или двумерный массив:

L := [ [2,  1,  2, 4, 5],
       [1,  2,  3, 2, 1],
       [2, -1, -3, 1, 2],
       [5,  4,  3, 2, 1],
       [2,  1,  2, 1, 2]]:
M := matrix(L):
A :=array(1..5, 1..5, 
          (1,1) = 2, (1,2) = 1, (1,3) =  2, (1,4) = 4, (1,5) = 5,
          (2,1) = 1, (2,2) = 2, (2,3) =  3, (2,4) = 2, (2,5) = 1,
          (3,1) = 2, (3,2) = 1, (3,3) = -3, (3,4) = 1, (3,5) = 2, 
          (4,1) = 5, (4,2) = 4, (4,3) =  3, (4,4) = 2, (4,5) = 1, 
          (5,1) = 2, (5,2) = 1, (5,3) =  2, (5,4) = 1, (5,5) = 2):
plot(plot::Bars2d(L))

plot(plot::Bars2d(M))

plot(plot::Bars2d(A))

Пример 7

Вот реальный пример столбиковой диаграммы, взятой из немецкого журнала. Это визуализирует данные, связанные с утилизацией отходов. Мы воспроизводим график через MuPAD®. Основной компонент является столбиковой диаграммой, сгенерированной через plot::Bars2d с опцией GroupStyle = SingleBars. Генерация аннотаций несколько хитра:

data := [[25  , 24.6, 30.8 ],
         [ 2  ,  2.8, 11   ],
         [ 7.1,  3.3,  4.05]]:

sw := 1.5: 
bw := 2.0: 
n := nops(data): 
w := sw + bw: 
myticks := [(i-1)* w + sw + bw/2 $ i = 1..n]:

m := nops(data[1]):

datalabels := ["Prognos", "LAGA", "BDE"]:

// cumulative data for the groups
datasums := _concat(datalabels[i].": ".
                    expr2text(_plus(data[j][i]$j=1..m)).
                    " megatons   " $i=1..n):

// generate a list of text objects containing the data values
// and place them in the centers of the bars:
datatext := []:
for i from 1 to n do
  h := 0;
  for j from 1 to m do
    d := data[j][i];
    datatext := datatext, plot::Text2d(expr2text(d), 
                                       [myticks[i], h + d/2], 
                                       TextFont = [8, RGB::White],
                                       VerticalAlignment = Center,
                                       HorizontalAlignment = Center);
    h := h + d
  end
end:

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

S1:=plot::Scene2d(
    plot::Bars2d(data, 
                 Colors=[RGB::LimeGreen, RGB::Blue, RGB::Red],
                 GroupStyle = SingleBars, 
                 BarCenters = [myticks[i] $ i=1..n],
                 BarWidths = [[bw]],       
                 DrawMode = Vertical),
  
     // scene options:

     ViewingBox = [0 .. w*n + sw, 0 .. 50],

     // options for the grid
     XGridVisible = FALSE,    
     YGridVisible = TRUE,
     XSubgridVisible = FALSE, 
     YSubgridVisible = TRUE,
     GridLineColor = RGB::DarkGrey,
     SubgridLineColor = RGB::DarkGrey,

     // options for the axes
     Axes = Boxed, 
     AxesTips = FALSE,
     AxesInFront = TRUE,
     AxesTitleFont = ["Arial", 12, Bold],
     XAxisVisible = TRUE,
     YAxisTitleOrientation = Vertical,
     YAxisTitleAlignment = Center,
     YAxisTitle = "megatons", 
     XAxisTitle = "",

     // options for the ticks along the axes
     TicksLabelFont = ["Arial", 10],
     XTicksVisible = FALSE,
     XTicksNumber = None,
     XTicksAt = [myticks[i] = datalabels[i] $ i=1..n],

     // layout 
     RightMargin = 50,

     // annotation
     datatext,

     // header and footer
     Header = "Capacities in megatons",
     HeaderFont = ["Arial", 12, Bold],
     Footer = "\n\nAmount of waste taken into account:\n".datasums,
     FooterFont = ["Arial", 8],
     FooterAlignment = Left,

     // use a yellowish background
     BackgroundColor = [0.886275, 0.870588, 0.294118]
):

plot(S1)

Затем мы создаем легенду, сделанную из цветных прямоугольников и текстовых объектов:

S2 := plot::Scene2d(
  ViewingBox = [0..20, 0..50],
  Axes = None,
  plot::Rectangle(13..13.5, 35..36, 
                  Filled = TRUE, 
                  FillPattern = Solid, 
                  FillColor = RGB::Red,
                  LineColor = RGB::Black),
  plot::Text2d("missing capacities", [14, 35],
               HorizontalAlignment = Left, 
               TextFont = ["Arial", 8]),
  plot::Rectangle(13..13.5, 29..30, 
                  Filled = TRUE, 
                  FillPattern = Solid, 
                  FillColor = RGB::Blue,
                  LineColor = RGB::Black),
  plot::Text2d("planned and potential capacities", [14, 29],
               HorizontalAlignment = Left, TextFont = ["Arial", 8]),
  plot::Rectangle(13..13.5, 23..24, 
                  Filled = TRUE,
                  FillPattern = Solid, 
                  FillColor = RGB::Green,
                  LineColor = RGB::Black),
  plot::Text2d("known capacities", [14, 23],
               HorizontalAlignment = Left, 
               TextFont = ["Arial", 8])
):

plot(S2, BorderWidth = 0.2)

Конечное изображение состоит из столбиковой диаграммы S1 и легенда S2. Мы только помещаем S2 сверху S1, создание фона S2 прозрачный:

S1::Width := 1: S1::Height := 1:
S2::Width := 1: S2::Height := 1:
S1::Bottom := 0: S1::Left := 0:
S2::Bottom := 0: S2::Left := 0:
S1::BackgroundTransparent := FALSE:
S2::BackgroundTransparent := TRUE:

plot(S1, S2, Layout = Relative)

delete data, datalabels, datasums, datatext, myticks, 
       sw, bw, n, m, w, i, h, j, d, S1, S2:

Параметры

a1, a2, …, b1, b2, …, …

Выражения с действительным знаком, возможно в параметре анимации.

a1, a2, …, b1, b2, …, … эквивалентен атрибуту Data.

a

Параметр анимации, заданный как a = amin..amax, где amin начальное значение параметров и amax итоговое значение параметров.

Смотрите также

Функции MuPAD

MuPAD графические примитивы