график::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, … Cf. Пример 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 |
Учитывая один список значений, plot::Bars2d строит панели соответствующей высоты, заполненной единогласно в одном цвете:
plot(plot::Bars2d([1, 2, 3, 4, 5]))

Когда спросили построить список списков значений, plot::Bars2d сгруппирует первые записи всех списков, вторые записи и так далее, с маленьким разрывом между группами:
plot(plot::Bars2d([[ 5, 10, 24, -3],
[ 6, 5, 2, 18],
[19, 45, 12,-10]]))
Внешним видом графиков можно управлять со многими атрибутами. Например, 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))
Мы демонстрируем альтернативный 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))
Чтобы отобразить одну группу на графике данных с различными цветами, они должны быть размещены в отдельные списки:
plot(plot::Bars2d([[binomial(15,i)] $ i = 0..15],
Colors = [[1-j/15, j/15, 0.9] $ j = 0..15]),
XAxisVisible)
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))

Вот реальный пример столбиковой диаграммы, взятой из немецкого журнала. Это визуализирует данные, связанные с утилизацией отходов. Мы воспроизводим график через 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:
|
Выражения с действительным знаком, возможно в параметре анимации.
|
|
Параметр анимации, заданный как |