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