SectorChart3D[{{x1,y1,z1},{x2,y2,z2},…}]
makes a 3D sector chart with sector angle proportional to xi, radius yi, and height zi.
SectorChart3D[{…,wi[{xi,yi,zi},…],…,wj[{xj,yj,zj},…],…}]
makes a 3D sector chart with sector features defined by the symbolic wrappers wk.
SectorChart3D[{data1,data2,…}]
makes a 3D sector chart from multiple datasets datai.
SectorChart3D
SectorChart3D[{{x1,y1,z1},{x2,y2,z2},…}]
makes a 3D sector chart with sector angle proportional to xi, radius yi, and height zi.
SectorChart3D[{…,wi[{xi,yi,zi},…],…,wj[{xj,yj,zj},…],…}]
makes a 3D sector chart with sector features defined by the symbolic wrappers wk.
SectorChart3D[{data1,data2,…}]
makes a 3D sector chart from multiple datasets datai.
Details and Options
- Data elements for SectorChart3D can be given in the following forms:
-
{xi,yi,zi} pure sector angle, radius, and height {Quantity[xi,ux],Quantity[yi,uy],Quantity[zi,uz]} sector angle, radius, and height with units wi[{xi,yi,zi},…] a sector with size {xi,yi,zi} and wrapper wi formi->mi a sector form with metadata mi - Data not given in these forms is ignored in forming the 3D sector chart.
- Datasets for SectorChart3D can be given in the following forms:
-
{e1,e2,…} list of elements with or without wrappers <|k1e1,k2e2,…|> association of keys and lengths TimeSeries[…],EventSeries[…],TemporalData[…] time series, event series, and temporal data WeightedData[…] dataset with weights w[{e1,e2,…},…] wrapper applied to a whole dataset w[{data1,data1,…},…] wrapper applied to all datasets - SectorChart3D[objcspec] extracts and plots values from the Tabular, TimeSeries or EventSeries object obj using the column specification cspec.
- The following forms of column specifications cspec are allowed for plotting tabular data:
-
{colx,coly,colz} plot data from columns x. y and z {{colx1,coly1,colz1},{colx2,coly2,colz2},…} plot multiple sets of columns - The following wrappers can be used for chart elements:
-
Annotation[e,label] provide an annotation Button[e,action] define an action to execute when the element is clicked EventHandler[e,…] define a general event handler for the element Hyperlink[e,uri] make the element act as a hyperlink Labeled[e,…] display the element with labeling Legended[e,…] include features of the element in a chart legend Mouseover[e,over] make the element show a mouseover form PopupWindow[e,cont] attach a popup window to the element StatusArea[e,label] display in the status area when the element is moused over Style[e,opts] show the element using the specified styles Tooltip[e,label] attach an arbitrary tooltip to the element - In SectorChart3D, Labeled and Placed allow the following positions:
-
"RadialOuter","RadialCenter","RadialInner" positions within sectors "RadialOutside","RadialInside","RadialEdge" positions outside sectors "RadialCallout" positions with callout lines {{sθ,sr,sz},{lx,ly}} scaled position {lx,ly} in the label at scaled cylindrical position {sθ,sr,sz} in the sector - SectorChart3D has the same options as Graphics3D with the following additions and changes: [List of all options]
-
Boxed False whether to draw a bounding box BoxRatios {1,1,0.1} bounding 3D box ratios ChartElementFunction Automatic how to generate raw graphics for sectors ColorFunction Automatic how to color sectors ColorFunctionScaling True whether to normalize arguments to ColorFunction LabelingFunction Automatic how to label sectors LegendAppearance Automatic overall appearance of legends Lighting "Neutral" simulated light sources to use PerformanceGoal $PerformanceGoal aspects of performance to try to optimize PlotInteractivity $PlotInteractivity whether to allow interactive elements PlotLabels None category labels for sectors PlotLayout Automatic overall layout to use PlotLegends None legends for data elements and datasets PlotRange Automatic range of values to include PlotStyle Automatic style for sectors PlotTheme $PlotTheme overall theme for the chart SectorOrigin Automatic origin of sectors SectorSpacing Automatic spacing between sectors TargetUnits Automatic units to display in the chart ViewPoint {0,-2.4,2} viewing position - The following settings for PlotLayout can be used to display multiple sets of data:
-

"Grouped" separate the data for each dataset 
"Stacked" accumulate the data for each dataset - Typical settings for PlotLegends include:
-
None no legend Automatic automatically determine legend {lbl1,lbl2,…} use lbl1, lbl2, … as legend labels Placed[lspec,…] specify placement for legend - PlotStylesty specifies the styles to use for each curve. Possible settings include:
-
{sty1,sty2,…} sequence of styles for the data <|"key"val,…|> styling elements for different levels of data - The accepted keys are:
-
"Base" overall style for all the bars "Elements" list of styles for the elements yi in each group "Groups" list of styles of each group of values datai - ColorData["DefaultChartColors"] gives the default sequence of colors used by PlotStyle.
- The arguments supplied to ChartElementFunction are the sector region {{θmin,θmax},{rmin,rmax},{zmin,zmax}}, the values {xi,yi,zi}, and the metadata {m1,m2,…} from each level in a nested list of datasets.
- A list of built-in settings for ChartElementFunction can be obtained from ChartElementData["SectorChart3D"].
- The arguments supplied to ColorFunction are θ, r, and z.
- Style and other specifications from options and other constructs in SectorChart3D are effectively applied in the order PlotStyle, ColorFunction, Style and other wrappers, and ChartElementFunction, with later specifications overriding earlier ones.
-
AlignmentPoint Center the default point in the graphic to align with AspectRatio Automatic ratio of height to width Axes False whether to draw axes AxesEdge Automatic on which edges to put axes AxesLabel None axes labels AxesOrigin Automatic where axes should cross AxesStyle {} graphics directives to specify the style for axes Background None background color for the plot BaselinePosition Automatic how to align with a surrounding text baseline BaseStyle {} base style specifications for the graphic Boxed False whether to draw a bounding box BoxRatios {1,1,0.1} bounding 3D box ratios BoxStyle {} style specifications for the box ChartElementFunction Automatic how to generate raw graphics for sectors ClipPlanes None clipping planes ClipPlanesStyle Automatic style specifications for clipping planes ColorFunction Automatic how to color sectors ColorFunctionScaling True whether to normalize arguments to ColorFunction ContentSelectable Automatic whether to allow contents to be selected ControllerLinking False when to link to external rotation controllers ControllerPath Automatic what external controllers to try to use Epilog {} 2D graphics primitives to be rendered after the main plot FaceGrids None grid lines to draw on the bounding box FaceGridsStyle {} style specifications for face grids FormatType TraditionalForm default format type for text ImageMargins 0. the margins to leave around the graphic ImagePadding All what extra padding to allow for labels, etc. ImageSize Automatic absolute size at which to render the graphic LabelingFunction Automatic how to label sectors LabelStyle {} style specifications for labels LegendAppearance Automatic overall appearance of legends Lighting "Neutral" simulated light sources to use Method Automatic details of 3D graphics methods to use PerformanceGoal $PerformanceGoal aspects of performance to try to optimize PlotInteractivity $PlotInteractivity whether to allow interactive elements PlotLabel None a label for the plot PlotLabels None category labels for sectors PlotLayout Automatic overall layout to use PlotLegends None legends for data elements and datasets PlotRange Automatic range of values to include PlotRangePadding Automatic how much to pad the range of values PlotRegion Automatic final display region to be filled PlotStyle Automatic style for sectors PlotTheme $PlotTheme overall theme for the chart PreserveImageOptions Automatic whether to preserve image options when displaying new versions of the same graphic Prolog {} 2D graphics primitives to be rendered before the main plot RotationAction "Fit" how to render after interactive rotation SectorOrigin Automatic origin of sectors SectorSpacing Automatic spacing between sectors SphericalRegion Automatic whether to make the circumscribing sphere fit in the final display area TargetUnits Automatic units to display in the chart Ticks Automatic specification for ticks TicksStyle {} style specification for ticks TouchscreenAutoZoom False whether to zoom to fullscreen when activated on a touchscreen ViewAngle Automatic angle of the field of view ViewCenter Automatic point to display at the center ViewMatrix Automatic explicit transformation matrix ViewPoint {0,-2.4,2} viewing position ViewProjection Automatic projection method for rendering objects distant from the viewer ViewRange All range of viewing distances to include ViewVector Automatic position and direction of a simulated camera ViewVertical {0,0,1} direction to make vertical
List of all options
Examples
open all close allBasic Examples (3)
A 3D sector chart representing angle, radii, and height:
SectorChart3D[{{2, 2, 3}, {2, 1, 2}, {1, 2, 1}}]SectorChart3D[{{2, 2, 3}, {2, 1, 2}, {1, 2, 1}}, SectorOrigin -> {Automatic, 1}]SectorChart3D[{{{1, 1.5, 3}, {1, 1, 2}, {1, 1, 1}}, {{1, 1, 3}, {1, 1, 2}, {1, 1.5, 1}}}]Scope (28)
Data and Layouts (12)
Items in a dataset are grouped together:
SectorChart3D[{{{1, 1, 3}, {1, 2, 2}, {1, 3, 2}}, {{2, 1, 3}, {2, 2, 3}, {2, 3, 2}}, {{3, 1, 3}, {3, 2, 3}, {3, 3, 1}}}]Datasets do not need to have the same number of items:
SectorChart3D[{{{1, 2, 2}, {2, 3, 3}}, {{1, 1, 3}, {2, 2, 3}, {3, 3, 1}}, {{1, 1, 3}, {2, 2, 3}, {3, 3, 2}, {4, 4, 1}}}]Nonreal data is taken to be missing and typically is ignored in the sector chart:
SectorChart3D[{{{1, 2, 2}, {2, 3, 3}}, {{1, 1, 3}, {Missing[], 2, 3}, {3, 3, 1}}, {{1, 1, 3}, {2, 2, 3}, {foo, 3, 2}, {4, 4, 1}}}]SectorChart3D[{{Quantity[1, "Seconds"], Quantity[3, "Seconds"], Quantity[5, "Meters"]}, {Quantity[1, "Seconds"], Quantity[7, "Seconds"], Quantity[3, "Meters"]}, {Quantity[2, "Seconds"], Quantity[4, "Seconds"], Quantity[5, "Meters"]}, {Quantity[3, "Seconds"], Quantity[4, "Seconds"], Quantity[7, "Meters"]}, {Quantity[5, "Seconds"], Quantity[4, "Seconds"], Quantity[3, "Meters"]}}]The time stamps in TimeSeries, EventSeries, and TemporalData are ignored:
SectorChart3D[TimeSeries[{{19, 16, 10}, {9, 3, 6}, {7, 6, 2}, {17, 12, 5}}, {"May 24, 1982"}]]The values in associations are taken as the values of the sectors:
SectorChart3D[<|"a" -> {1, 3, 1}, "b" -> {2, 4, 3}, "c" -> {5, 3, 5}, "d" -> {3, 5, 2}|>]SectorChart3D[<|"a" -> {1, 3, 1}, "b" -> {2, 4, 3}, "c" -> {5, 3, 5}, "d" -> {3, 5, 2}|>, PlotLabels -> Automatic]SectorChart3D[<|"a" -> {1, 3, 1}, "b" -> {2, 4, 3}, "c" -> {5, 3, 5}, "d" -> {3, 5, 2}|>, PlotStyle -> {Hue[0.61, 0.7, 1], Hue[0.17, 0.4, 0.65], Hue[0.64, 0.5, 0.75], Hue[0.45, 0.4, 0.7]}, PlotLegends -> Automatic]SectorChart3D[<|"group a" -> <|"a" -> {1, 3, 1}, "b" -> {2, 4, 3}, "c" -> {5, 3, 5}, "d" -> {3, 5, 2}|>, "group b" -> <|"a" -> {1, 3, 1}, "b" -> {2, 4, 3}, "c" -> {5, 3, 5}, "d" -> {3, 5, 2}|>|>, PlotLegends -> Automatic]The weights in WeightedData are ignored:
SectorChart3D[WeightedData[{{5, 4, 6}, {3, 3, 3}, {2, 3, 2}, {3, 3, 4}}, {0.5, 0.2, 0.1, 0.05}]]Use different layouts to display multiple datasets:
Table[SectorChart3D[RandomInteger[{1, 4}, {2, 10, 3}], ChartLayout -> l], {l, {"Grouped", "Stacked"}}]Control the direction of sectors:
Table[SectorChart3D[{{1, 1, 3}, {1, 2, 1}, {2, 3, 2}, {3, 2, 1}}, SectorOrigin -> o, PlotLabel -> o], {o, {{0, "Clockwise"}, {0, "Counterclockwise"}}}]Control the starting angle of sectors:
Table[SectorChart3D[{{1, 1, 3}, {1, 2, 1}, {2, 3, 2}, {3, 2, 1}}, SectorOrigin -> o, PlotLabel -> o], {o, {0, Pi / 2}}]Control the starting radius of sectors:
Table[SectorChart3D[{{1, 1, 3}, {1, 2, 1}, {2, 3, 2}, {3, 2, 1}}, SectorOrigin -> o, PlotLabel -> o], {o, {{{0, "Clockwise"}, 0}, {{0, "Clockwise"}, 1}}}]Adjust the spacing between sectors and groups of sectors:
data = {{{1, 1, 3}, {2, 2, 2}, {2, 3, 1}}, {{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}};Table[SectorChart3D[data, SectorSpacing -> s, PlotLabel -> s, PlotStyle -> Opacity[0.8]], {s, {Automatic, {0, 1}, {0.1, 1}}}]Tabular Data (3)
tabdata = AggregateRows[Tabular[ResourceData["Sample Data: 1993 US Cars"]], {"AvgPrice" -> (Mean[#AvgPrice]&), "TotalCars" -> (Length[#AvgPrice]&), "AvgWeight" -> (Mean[#Weight]&), "AvgFuelTankCap" -> (Mean[#FuelTankCapacity]&)}, {"Type"}]Compare the average weight and price of each group of cars:
SectorChart3D[tabdata -> {"TotalCars", "AvgPrice", "AvgWeight"}, PlotLabels -> Normal[tabdata[All, "Type"]]]Plot the values for all the components in TimeSeries or EventSeries:
SectorChart3D[TimeSeries[TimeEventSeries`TimestampData[Association["UniformlySpacedQ" -> True, "Count" -> 5,
"Endpoints" -> TabularColumn[Association[
"Data" -> {2, {{NumericArray[{20563, -2147483648}, "Integer32"], {},
DataStructure["BitVec ... ularColumn[Association[
"Data" -> {{17, 5, 7, 6, 13}, {}, None}, "ElementType" -> "Integer64"]],
TabularColumn[Association["Data" -> {{3, 2, 2, 1, 1}, {}, None},
"ElementType" -> "Integer64"]]}}]]]], Association[]]]Plot the values for a set of components of a TimeSeries or EventSeries:
ts = TimeSeries[TimeEventSeries`TimestampData[Association["UniformlySpacedQ" -> True, "Count" -> 5,
"Endpoints" -> TabularColumn[Association[
"Data" -> {2, {{NumericArray[{20563, -2147483648}, "Integer32"], {},
DataStructure["BitVec ... e" -> "Integer64"]], TabularColumn[Association[
"Data" -> {{3.5511999004449324, 1.777675777376151, 1.3490852490420469,
3.8396388450135266, 4.100051503528421}, {}, None}, "ElementType" -> "Real64"]]}}]]]],
Association[]];SectorChart3D[ts -> {"a", "b", "c"}]Plot values from multiple sets of components:
SectorChart3D[ts -> {{"a", "b", "c"}, {"d", "e", "f"}}]Wrappers (4)
Use wrappers on individual data, datasets, or collections of datasets:
{{d1, d2, d3, d4}, {w1, w2, w3, w4}} = {{{2, 1, 3}, {3, 4, 2}, {4, 2, 2}, {3, 4, 1}}, {{2, 2, 3}, {2, 3, 2}, {3, 2, 2}, {4, 3, 1}}};{SectorChart3D[{{d1, Style[d2, RGBColor[0.93, 0.27, 0.27]], d3, d4}, {w1, w2, w3, w4}}], SectorChart3D[{Style[{d1, d2, d3, d4}, RGBColor[0.14, 0.8, 0.14]], {w1, w2, w3, w4}}], SectorChart3D[Style[{{d1, d2, d3, d4}, {w1, w2, w3, w4}}, RGBColor[0.4, 0.6, 1]]]}{SectorChart3D[{{d1, Style[d2, RGBColor[0.93, 0.27, 0.27]], d3, d4}, {w1, w2, w3, w4}}], SectorChart3D[{Style[{d1, Style[d2, RGBColor[0.93, 0.27, 0.27]], d3, d4}, RGBColor[0.14, 0.8, 0.14]], {w1, w2, w3, w4}}], SectorChart3D[Style[{Style[{d1, Style[d2, RGBColor[0.93, 0.27, 0.27]], d3, d4}, RGBColor[0.14, 0.8, 0.14]], {w1, w2, w3, w4}}, RGBColor[0.4, 0.6, 1]]]}Override the default tooltips:
SectorChart3D[{{1, 3, 2}, {2, 1, 3}, Tooltip[{3, 3, 1}, "median"], {4, 2, 1}}]Use any object in the tooltip:
SectorChart3D[Table[Tooltip[{CountryData[c, "Population"], CountryData[c, "LifeExpectancy"], 1}, CountryData[c, "Flag"]], {c, CountryData["G8"]}]]Use PopupWindow to provide additional drilldown information:
SectorChart3D[{{1, 3, 2}, {2, 1, 3}, PopupWindow[{3, 3, 2}, DateListPlot[FinancialData["IBM", "Jan. 1, 2004"]]], {4, 2, 1}}]Button can be used to trigger any action:
SectorChart3D[{{1, 3, 2}, {2, 1, 3}, Button[{3, 3, 2}, Speak[3]], {4, 2, 1}}]Styling and Appearance (6)
Use an explicit list of styles for the sectors:
SectorChart3D[{{1, 3, 2}, {2, 1, 3}, {3, 3, 2}, {4, 2, 1}}, PlotStyle -> {RGBColor[0.93, 0.27, 0.27], RGBColor[0.14, 0.8, 0.14], RGBColor[0.4, 0.6, 1], RGBColor[1, 0.75, 0]}]PlotStyle can be used to set an initial style for all chart elements:
SectorChart3D[{{1, 3, 2}, {2, 1, 3}, {3, 3, 2}, {4, 2, 1}}, PlotStyle -> <|"Base" -> EdgeForm[{Thick, RGBColor[0.93, 0.27, 0.27]}], "Elements" -> 45|>]Style can be used to override styles:
SectorChart3D[{{1, 3, 2}, Style[{2, 1, 3}, RGBColor[0.93, 0.27, 0.27]], {3, 3, 2}, {4, 2, 1}}, PlotStyle -> {RGBColor[0.797253, 0.904982, 0.410498], RGBColor[0.934691, 0.945708, 0.75346], RGBColor[0.769879, 0.92369, 0.977371], RGBColor[1, 0.566415, 0.0386511]}]Use built-in programmatically generated sectors:
ChartElementData["SectorChart3D"]Table[SectorChart3D[{{1, 3, 2}, {2, 1, 3}, {3, 3, 2}, {4, 2, 1}}, ChartElementFunction -> f, PlotStyle -> {RGBColor[0.823529, 0.788464, 0.657969], RGBColor[0.710414, 0.677302, 0.556176], RGBColor[0.687785, 0.640955, 0.477546], RGBColor[0.610864, 0.569268, 0.42414]}, SectorOrigin -> {Automatic, 1}], {f, {"CylindricalSector3D", "ProfileSector3D", "TorusSector3D"}}]For detailed settings, use Palettes ▶ ChartElementSchemes:
SectorChart3D[{{1, 3, 2}, {2, 1, 3}, {3, 3, 2}, {4, 2, 1}}, SectorOrigin -> {Automatic, 1}, ChartElementFunction -> ChartElementDataFunction["ProfileSector3D", "GradientDirection" -> "Angular"], PlotStyle -> {RGBColor[0.468742, 0., 0.0158236], RGBColor[0.871407, 0.20684366666666665, 0.013399966666666667], RGBColor[0.9899876666666667, 0.5566463333333334, 0.06420996666666667], RGBColor[1., 0.820127, 0.126955]}]Use a theme with dark background and profile 3D sectors:
SectorChart3D[{{1, 3, 2}, {2, 2, 1}, {3, 3, 4}, {4, 2, 3}}, PlotTheme -> "Marketing"]SectorChart3D[{{{6, 9, 12}, {8, 8, 3}, {8, 9, 7}, {3, 4, 5}, {7, 7, 10}}, {{4, 3, 12}, {3, 5, 7}, {3, 7, 4}, {4, 7, 12}, {9, 6, 5}}}, PlotTheme -> "Monochrome"]Labeling and Legending (3)
Use Labeled to add a label to a sector:
SectorChart3D[{{1, 3, 2}, {2, 1, 3}, Labeled[{3, 3, 2}, "label"], {4, 2, 1}}]Use symbolic positions for label placement:
Table[SectorChart3D[{{1, 3, 2}, {2, 1, 3}, Labeled[{3, 3, 2}, "label", p], {4, 2, 1}}, PlotLabel -> p, SectorOrigin -> {Automatic, 1}], {p, {"RadialInner", "RadialCenter", "RadialOuter"}}]Table[SectorChart3D[{{1, 3, 2}, {2, 1, 3}, Labeled[{3, 3, 2}, "label", p], {4, 2, 1}}, PlotLabel -> p, SectorOrigin -> {Automatic, 1}], {p, {"RadialInside", "RadialOutside"}}]Table[SectorChart3D[{Labeled[{1, 3, 2}, "L1", p], Labeled[{2, 1, 3}, "L2", p], Labeled[{3, 3, 2}, "L3", p], Labeled[{4, 2, 1}, "L4", p]}, PlotLabel -> p], {p, {"RadialCallout", "VerticalCallout"}}]Provide value labels for sectors by using LabelingFunction:
SectorChart3D[{{2, 1, 2}, {2, 3, 3}, {3, 4, 2}, {4, 2, 1}}, LabelingFunction -> "RadialOutside"]Options (74)
Axes (3)
By default, Axes are not drawn:
SectorChart3D[{{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}]Use AxesTrue to turn on axes:
SectorChart3D[{{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}, Axes -> True]Turn each axis on individually:
{SectorChart3D[{{1, 1, 1}, {1, 2, 2}, {2, 3, 2}, {3, 2, 8}}, Axes -> {False, False, True}], SectorChart3D[{{1, 1, 1}, {1, 2, 2}, {2, 3, 2}, {3, 2, 8}}, Axes -> {False, True, False}], SectorChart3D[{{1, 1, 1}, {1, 2, 2}, {2, 3, 2}, {3, 2, 8}}, Axes -> {True, False, False}]}AxesLabel (3)
No axes labels are drawn by default:
SectorChart3D[{{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}, Axes -> True]SectorChart3D[{{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}, Axes -> True, AxesLabel -> z]SectorChart3D[{{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}, Axes -> True, AxesLabel -> {x, y, z}]AxesOrigin (2)
The position of the axes is determined automatically:
SectorChart3D[{{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}, Axes -> True]Specify an explicit origin for the axes:
SectorChart3D[{{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}, Axes -> True, AxesOrigin -> {-2.5, 0, 0}]AxesStyle (3)
Change the style for the axes:
SectorChart3D[{{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}, Axes -> True, AxesStyle -> RGBColor[0.93, 0.27, 0.27]]Specify the style of each axis:
SectorChart3D[{{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}, Axes -> True, AxesStyle -> {{Thick, RGBColor[0.67, 0.54, 0.42]}, {Thick, RGBColor[0.4, 0.6, 1]}, {Thick, RGBColor[0.14, 0.8, 0.14]}}]Use different styles for the ticks and the axes:
SectorChart3D[{{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}, Axes -> True, AxesStyle -> RGBColor[0.14, 0.8, 0.14], TicksStyle -> RGBColor[0.4, 0.6, 1]]ChartElementFunction (6)
Get a list of built-in settings for ChartElementFunction:
ChartElementData["SectorChart3D"]For detailed settings, use Palettes ▶ ChartElementSchemes:
Table[SectorChart3D[Tuples[{1, 2}, 3], ChartElementFunction -> f, SectorOrigin -> {{3Pi / 2, 1}, 1}, PlotStyle -> {RGBColor[0.773754, 0.420615, 0.187213], RGBColor[0.443442, 0.110262, 0.100633], RGBColor[0.877699, 0.728923, 0.228702], RGBColor[0.882353, 0.597772, 0.124285], RGBColor[0.266972, 0.112123, 0.117922], RGBColor[0.683253, 0.00616464, 0.0506752], RGBColor[1, 0.8, 0.4], RGBColor[0.70135, 0.246342, 0.10016]}, PlotLabel -> f], {f, {"CylindricalSector3D", "ProfileSector3D", "TorusSector3D"}}]Use ChartElementData to specify the same chart element rendering function as above:
SectorChart3D[Tuples[{1, 2}, 3], ChartElementFunction -> Function[{angleRadiusMinMax, yr, meta}, ChartElementData["CylindricalSector3D"][angleRadiusMinMax, yr, meta]]]Use metadata passed on from the input, in this case charting the data:
DataDrilldownSector[{{t0_, t1_}, {r0_, r1_}, {h0_, h1_}}, y_, {data_List}] :=
PopupWindow[ChartElementData["ProfileSector3D"][{{t0, t1}, {r0, r1}, {h0, h1}}, y], BarChart3D[data]]DataDrilldownSector[{{t0_, t1_}, {r0_, r1_}, {h0_, h1_}}, y_, _] :=
ChartElementData["CylindricalSector3D"][{{t0, t1}, {r0, r1}, {h0, h1}}, y]SectorChart3D[{{1, 1, 2} -> Range[5], {1, 2, 3}, {2, 1, 2} -> RandomReal[1, 10], {2, 2, 1}}, ChartElementFunction -> DataDrilldownSector]Give a list of ChartElementFunction:
SectorChart3D[Tuples[{1, 2}, 3], ChartElementFunction -> {"CylindricalSector3D", "ProfileSector3D", "TorusSector3D"}, PlotStyle -> {RGBColor[0.468742, 0., 0.0158236], RGBColor[0.6706774285714285, 0.06984285714285714, 0.009042057142857144], RGBColor[0.8432481428571429, 0.15849014285714286, 0.008003357142857142], RGBColor[0.9277247142857143, 0.30355071428571423, 0.024193185714285713], RGBColor[0.978545, 0.4534661428571428, 0.0459689], RGBColor[0.995709, 0.6082364285714286, 0.07333049999999999], RGBColor[1., 0.7211567142857143, 0.10022122857142858], RGBColor[1., 0.820127, 0.126955]} , SectorOrigin -> {Automatic, 1}]Built-in element functions may have options; use Palettes ▶ ChartElementSchemes to set them:
ChartElementData["ProfileSector3D", "Options"]Table[SectorChart3D[Tuples[{1, 2}, 3], SectorOrigin -> {Automatic, 1}, ChartElementFunction -> ChartElementDataFunction["ProfileSector3D", "Profile" -> p], PlotLabel -> p], {p, {0.1, 1, 3, 5}}]ColorFunction (4)
SectorChart3D[Table[{Exp[-t ^ 2], Exp[-t ^ 2], 1}, {t, -2, 2, 0.25}], ColorFunction -> Function[{angle, radius}, ColorData["Rainbow"][angle]]]Use ColorFunctionScaling->False to get unscaled angular values:
SectorChart3D[Tuples[{1, 2}, 3], ColorFunction -> (Switch[{#1, #2}, {1, 1}, RGBColor[1, 0.75, 0], {1, 2}, RGBColor[0.98, 0.56, 0.17], {2, 1}, RGBColor[0.93, 0.27, 0.27], _, RGBColor[0.4, 0.6, 1]]&), ColorFunctionScaling -> False]ColorFunction overrides styles in PlotStyle:
SectorChart3D[Tuples[{1, 2, 3}, 3], PlotStyle -> {RGBColor[0.93, 0.27, 0.27], RGBColor[0.14, 0.8, 0.14], RGBColor[0.67, 0.54, 0.42]}, ColorFunction -> "Pastel"]Use ColorFunction to combine different style effects:
SectorChart3D[Table[{Exp[-t ^ 2], Exp[-t ^ 2], 1}, {t, -2, 2, 0.25}], ColorFunction -> Function[{angle, radius}, Opacity[radius]], PlotStyle -> RGBColor[0.8, 0.3, 0.8]]ColorFunctionScaling (2)
Use ColorFunctionScaling->False to get unscaled height values:
SectorChart3D[Tuples[{1, 2}, 3], ColorFunction -> (Switch[{#1, #2}, {1, 1}, RGBColor[1, 0.75, 0], {1, 2}, RGBColor[0.98, 0.56, 0.17], {2, 1}, RGBColor[0.93, 0.27, 0.27], _, RGBColor[0.4, 0.6, 1]]&), ColorFunctionScaling -> False]SectorChart3D[{{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}, ColorFunction -> Function[{angle, radius}, ColorData["Rainbow"][angle radius / 4]], ColorFunctionScaling -> False]ImageSize (7)
Use named sizes, such as Tiny, Small, Medium and Large:
{SectorChart3D[{{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}, ImageSize -> Tiny], SectorChart3D[{{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}, ImageSize -> Small]}Specify the width of the plot:
{SectorChart3D[{{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}, ImageSize -> 150], SectorChart3D[{{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}, AspectRatio -> 1.5, ImageSize -> 150]}Specify the height of the plot:
{SectorChart3D[{{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}, ImageSize -> {Automatic, 150}], SectorChart3D[{{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}, AspectRatio -> 2, ImageSize -> {Automatic, 150}]}Allow the width and height to be up to a certain size:
{SectorChart3D[{{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}, ImageSize -> UpTo[200]], SectorChart3D[{{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}, AspectRatio -> 2, ImageSize -> UpTo[200]]}Specify the width and height for a graphic, padding with space if necessary:
SectorChart3D[{{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}, ImageSize -> {200, 250}, Background -> LightBlue]Setting AspectRatioFull will fill the available space:
SectorChart3D[{{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}, AspectRatio -> Full, ImageSize -> {200, 250}, Background -> LightBlue]Use maximum sizes for the width and height:
{SectorChart3D[{{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}, ImageSize -> {UpTo[150], UpTo[100]}], SectorChart3D[{{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}, AspectRatio -> 2, ImageSize -> {UpTo[150], UpTo[100]}]}Use ImageSizeFull to fill the available space in an object:
Framed[Pane[SectorChart3D[{{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}, ImageSize -> Full, Background -> LightBlue], {200, 200}]]Specify the image size as a fraction of the available space:
Framed[Pane[SectorChart3D[{{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}, AspectRatio -> Full, ImageSize -> {Scaled[0.5], Scaled[0.5]}, Background -> LightBlue], {200, 100}]]LabelingFunction (7)
Use automatic labeling by values through Tooltip and StatusArea:
SectorChart3D[{{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}, LabelingFunction -> Automatic]SectorChart3D[{{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}, LabelingFunction -> None]Use Placed to control label placement:
Table[SectorChart3D[{{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}, LabelingFunction -> (Placed[First@#, p]&), PlotLabel -> p, Ticks -> None], {p, {"RadialInner", "RadialCenter", "RadialOuter"}}]Symbolic positions outside the sector:
Table[SectorChart3D[{{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}, SectorOrigin -> {Automatic, 4}, LabelingFunction -> (Placed[Last@#, p]&), PlotLabel -> p], {p, {"RadialInside", "RadialOutside", "RadialEdge"}}]Table[SectorChart3D[{{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}, LabelingFunction -> (Placed[#[[2]], p]&), PlotLabel -> p], {p, {"RadialCallout", "VerticalCallout"}}]Coordinate-based placement relative to a bar:
Table[SectorChart3D[{{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}, LabelingFunction -> (Placed[First@#, p]&), PlotLabel -> p, SectorOrigin -> {Automatic, 2}], {p, {{0, 0, 0}, {1 / 2, 1 / 2, 1 / 2}, {1, 1, 1}}}]Place all labels at the first outer corner and vary the coordinates within the label:
Table[SectorChart3D[{{1, 2, 2}, {2, 3, 2}, {3, 2, 1}}, PlotLabels -> (Placed[Framed /@ {"aa", "bb", "cc"}, {{1, 1, 1}, p}]), PlotLabel -> p, SectorOrigin -> {Automatic, 2}], {p, {{0, 0}, {1 / 2, 1 / 2}, {1, 1}}}]Control the formatting of labels:
SectorChart3D[{{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}, LabelingFunction -> (Placed[Row[{"$", #[[1]]}, " "], "RadialOutside"]&)]PerformanceGoal (3)
Generate a sector chart with interactive highlighting:
SectorChart3D[Tuples[{1, 2, 3}, 3], PerformanceGoal -> "Quality"]Emphasize performance by disabling interactive behaviors:
SectorChart3D[Tuples[{1, 2, 3}, 3], PerformanceGoal -> "Speed"]Typically less memory is required for noninteractive charts:
Table[ByteCount@SectorChart3D[Tuples[{1, 2, 3}, 3], PerformanceGoal -> p], {p, {"Quality", "Speed"}}]PlotInteractivity (4)
Charts with a moderate number of sectors automatically have tooltips and mouseover effects:
SectorChart3D[{{1, 1, 1}, {2, 1, 2}, {2, 2, 1}}]Turn off all the interactive elements:
SectorChart3D[{{1, 1, 1}, {2, 1, 2}, {2, 2, 1}}, PlotInteractivity -> False]Interactive elements provided as part of the input are disabled:
SectorChart3D[{{1, 1, 1}, {2, 1, 2}, Tooltip[{2, 2, 1}, "Hello"]}, PlotInteractivity -> False]Allow provided interactive elements and disable automatic ones:
SectorChart3D[{{1, 1, 1}, {2, 1, 2}, Tooltip[{2, 2, 1}, "Hello"]}, PlotInteractivity -> <|"User" -> True, "System" -> False|>]PlotLabels (6)
By default, labels are placed radially centered:
SectorChart3D[{{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}, PlotLabels -> {"a", "b", "c", "d"}]SectorChart3D[{{{1, 2, 3}, {2, 2, 2}, {2, 1, 2}}, {{2, 2, 2}, {1, 2, 2}, {2, 3, 2}}}, PlotLabels -> {"a", "b"}]Labeled wrappers in data will place additional labels:
SectorChart3D[{{1, 1, 3}, Labeled[{1, 2, 2}, "label", "RadialOutside"], {2, 3, 2}, {3, 2, 1}}, PlotLabels -> {"a", "b", "c", "d"}]Use Placed to control label placement:
Table[SectorChart3D[{{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}, PlotLabels -> Placed[{"a", "b", "c", "d"}, p], PlotLabel -> p], {p, {"RadialInner", "RadialCenter", "RadialOuter"}}]Table[SectorChart3D[{{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}, SectorOrigin -> {Automatic, 1}, PlotLabels -> Placed[{"a", "b", "c", "d"}, p], PlotLabel -> p, Ticks -> None], {p, {"RadialInside", "RadialOutside", "RadialEdge"}}]Table[SectorChart3D[{{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}, SectorOrigin -> {Automatic, 1}, PlotLabels -> Placed[{"a", "b", "c", "d"}, p], PlotLabel -> p, Ticks -> None], {p, {"RadialCallout", "VerticalCallout"}}]Coordinate-based placement relative to a sector:
Table[SectorChart3D[{{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}, SectorOrigin -> {Automatic, 1}, PlotLabels -> Placed[{"aa", "bb", "cc", "dd"}, p], PlotLabel -> p], {p, {{0, 0, 0}, {1 / 2, 1 / 2, 1}, {1, 1, 1}}}]Use the third argument to Placed to control formatting:
SectorChart3D[{{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}, PlotLabels -> Placed[{"aaa", "bbb", "ccc", "ddd"}, "RadialOutside", Style[#, RGBColor[0.93, 0.27, 0.27], 16, Bold]&]]By default, labels are associated with rows of data:
SectorChart3D[{{{1, 2, 3}, {2, 2, 2}, {2, 1, 2}}, {{2, 2, 2}, {1, 2, 2}, {2, 3, 2}}}, PlotLabels -> {"r1", "r2"}]Associate labels with rows or datasets:
SectorChart3D[{{{1, 2, 3}, {2, 2, 2}, {2, 1, 2}}, {{2, 2, 2}, {1, 2, 2}, {2, 3, 2}}}, PlotLabels -> <|"Elements" -> {"c1", "c2", "c3"}|>]SectorChart3D[{{{1, 2, 3}, {2, 2, 2}, {2, 1, 2}}, {{2, 2, 2}, {1, 2, 2}, {2, 3, 2}}}, PlotLabels -> <|"Groups" -> {"r1", "r2"}, "Elements" -> {"c1", "c2", "c3"}|>]Use Placed to affect placements:
SectorChart3D[{{{1, 2, 3}, {2, 2, 2}, {2, 1, 2}}, {{2, 2, 2}, {1, 2, 2}, {2, 3, 2}}}, PlotLabels -> <|"Groups" -> Placed[{"r1", "r2"}, "RadialOuter"], "Elements" -> Placed[{"c1", "c2", "c3"}, "RadialCenter"]|>]SectorChart3D[{{1, 2, 3}, {2, 2, 2}, {2, 1, 2}}, PlotLabels -> Placed[{{"a", "b", "c"}, {"x", "y", "z"}}, {"RadialCenter", "RadialCallout"}]]PlotLayout (2)
PlotLayout is grouped by default in concentric rings:
data = {{{1, 1, 3}, {2, 2, 2}, {2, 3, 1}}, {{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}};{SectorChart3D[data], SectorChart3D[data, PlotLayout -> "Grouped"]}data = {{{1, 1, 3}, {2, 2, 2}, {2, 3, 1}}, {{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}};SectorChart3D[data, PlotLayout -> "Stacked"]The stacked layout can display many datasets:
SectorChart3D[RandomReal[1, {10, 5, 3}], PlotLayout -> "Stacked"]PlotLegends (7)
Add categorical legend entries for the columns of data:
SectorChart3D[{{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}, PlotLegends -> <|"Elements" -> {"ccc1", "ccc2", "ccc3", "ccc4"}|>, PlotStyle -> <|"Elements" -> {RGBColor[0.761959, 0.470832, 0.940597], RGBColor[0.927848, 0.742785, 0.6151383333333333], RGBColor[0.929162, 0.95034, 0.6648153333333333], RGBColor[0.431296, 0.709773, 0.927077]}|>]SectorChart3D[{{{1, 2, 3}, {2, 2, 2}, {2, 1, 2}}, {{2, 2, 2}, {1, 2, 2}, {2, 3, 2}}}, PlotLegends -> <|"Groups" -> {"rr1", "rr2"}|>, PlotStyle -> <|"Groups" -> {RGBColor[0.761959, 0.470832, 0.940597], RGBColor[0.431296, 0.709773, 0.927077]}|>]Use Legended to add additional legend entries:
SectorChart3D[{{{1, 2, 3}, Legended[Style[{2, 2, 2}, RGBColor[0.93, 0.27, 0.27]], "aa"], {2, 1, 2}}, {{2, 2, 2}, {1, 2, 2}, {2, 3, 2}}}, PlotStyle -> <|"Elements" -> {RGBColor[0.761959, 0.470832, 0.940597], RGBColor[0.9584254999999999, 0.877884, 0.5906629999999999], RGBColor[0.431296, 0.709773, 0.927077]}|>, PlotLegends -> <|"Elements" -> {"ccc1", "ccc2", "ccc3"}|>]Use Legended to specify individual legend entries:
SectorChart3D[{{1, 1, 3}, Legended[{1, 2, 2}, "aa"], {2, 3, 2}, {3, 2, 1}}, PlotStyle -> <|"Elements" -> {RGBColor[0.761959, 0.470832, 0.940597], RGBColor[0.8750956, 0.6580038, 0.746929], RGBColor[0.9440982, 0.7955892, 0.5942686], RGBColor[0.9537862, 0.937389, 0.6180996], RGBColor[0.7952328000000001, 0.8988539999999999, 0.8302508], RGBColor[0.431296, 0.709773, 0.927077]}|>]Generate a legend for datasets:
data = {{{1, 1, 3}, {2, 2, 2}, {2, 3, 1}}, {{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}};SectorChart3D[data, PlotLegends -> {"Group A", "Group B"}, PlotStyle -> <|"Groups" -> {RGBColor[0.761959, 0.470832, 0.940597], RGBColor[0.431296, 0.709773, 0.927077]}|>]Unused legend labels are dropped:
data = {{{1, 1, 3}, {2, 2, 2}, {2, 3, 1}}, {{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}};SectorChart3D[data, PlotLegends -> {"Group A", "Group B", "Group C"}, PlotStyle -> <|"Groups" -> {RGBColor[0.761959, 0.470832, 0.940597], RGBColor[0.431296, 0.709773, 0.927077]}|>]Legends can be applied to several dimensions:
data = {{{1, 1, 3}, {2, 2, 2}, {2, 3, 1}}, {{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}};SectorChart3D[data, PlotLegends -> <|"Groups" -> {"Test A", "Test B"}, "Elements" -> {"John", "Mary", "Bob"}|>, PlotStyle -> <|"Groups" -> {EdgeForm[Directive[Opacity[1], RGBColor[0.93, 0.27, 0.27], Thickness[0.01]]], EdgeForm[Directive[Opacity[1], Dashed]]}, "Elements" -> {RGBColor[0.761959, 0.470832, 0.940597], RGBColor[0.9584254999999999, 0.877884, 0.5906629999999999], RGBColor[0.431296, 0.709773, 0.927077]}|>]Use Placed to control the placement of legends:
data = {{{1, 1, 3}, {2, 2, 2}, {2, 3, 1}}, {{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}};Table[SectorChart3D[data, PlotLegends -> Placed[{"John", "Mary", "Bob"}, pos], PlotStyle -> {RGBColor[0.761959, 0.470832, 0.940597], RGBColor[0.431296, 0.709773, 0.927077]}], {pos, {Before, Below}}]Table[SectorChart3D[data, PlotLegends -> Placed[{"John", "Mary", "Bob"}, pos], PlotStyle -> {RGBColor[0.761959, 0.470832, 0.940597], RGBColor[0.431296, 0.709773, 0.927077]}], {pos, {Before, After}}]PlotStyle (5)
Use PlotStyle to style sectors:
SectorChart3D[{{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}, PlotStyle -> {RGBColor[0.93, 0.27, 0.27], RGBColor[0.14, 0.8, 0.14], RGBColor[0.4, 0.6, 1], RGBColor[1, 0.75, 0]}]Table[SectorChart3D[{{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}, PlotStyle -> s], {s, {EdgeForm[{Opacity[1], Blue}], Opacity[0.7]}}]data = {{{1, 1, 3}, {2, 2, 2}, {2, 3, 1}}, {{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}};SectorChart3D[data, PlotStyle -> {RGBColor[0.93, 0.27, 0.27], RGBColor[0.4, 0.6, 1]}]data = {{{1, 1, 3}, {2, 2, 2}, {2, 3, 1}}, {{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}};SectorChart3D[data, PlotStyle -> <|"Elements" -> {RGBColor[0.93, 0.27, 0.27], RGBColor[0.14, 0.8, 0.14], RGBColor[0.4, 0.6, 1]}|>]SectorChart3D[data, PlotStyle -> <|"Groups" -> {RGBColor[0.93, 0.27, 0.27], RGBColor[0.14, 0.8, 0.14]}|>]Style base, rows and columns of data:
SectorChart3D[data, PlotStyle -> <|"Base" -> EdgeForm[{Thick, Dashed}], "Groups" -> {Opacity[0.3], Opacity[0.9]}, "Elements" -> {RGBColor[0.93, 0.27, 0.27], RGBColor[0.14, 0.8, 0.14], RGBColor[0.4, 0.6, 1]}|>]PlotStyle combines with Style:
SectorChart3D[{{1, 1, 2}, Style[{1, 2, 2}, Opacity[0.2]], {2, 3, 2}, {3, 2, 1}}, PlotStyle -> {RGBColor[0.93, 0.27, 0.27], RGBColor[0.14, 0.8, 0.14], RGBColor[0.4, 0.6, 1], RGBColor[1, 0.75, 0]}]Style may override settings for PlotStyle:
SectorChart3D[{{1, 1, 2}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}, Style[{1, 2, 3}, EdgeForm[None]]}, PlotStyle -> EdgeForm[{Thick, Dashed, Opacity[0.8]}]]"Elements" or "Groups" may override "Base" settings:
data = {{{1, 1, 3}, {2, 2, 2}, {2, 3, 1}}, {{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}};SectorChart3D[data, PlotStyle -> <|"Base" -> EdgeForm[None], "Elements" -> EdgeForm[Dashed]|>]Use ColorFunction to combine different style effects:
SectorChart3D[Tuples[{1, 2}, 3], PlotStyle -> EdgeForm /@ {Dashed, Dotted, DotDashed}, ColorFunction -> (Blend[{RGBColor[0.4, 0.6, 1], RGBColor[0.93, 0.27, 0.27]}, #]&)]SectorChart3D[RandomReal[{0.4, 1}, {3, 8, 3}], PlotStyle -> <|"Groups" -> "Rainbow"|>, ChartLayout -> "Grouped", ColorFunction -> Function[{height}, Opacity[height]]]SectorChart3D[RandomReal[{0.4, 1}, {3, 8, 3}], PlotStyle -> <|"Groups" -> "Rainbow"|>, ChartLayout -> "Grouped", ColorFunction -> Function[{x, y, z}, RGBColor[x, y, z]]]SectorChart3D[RandomReal[{0.4, 1}, {2, 8, 3}], ChartElementFunction -> "TorusSector3D", PlotStyle -> {RGBColor[0.761959, 0.470832, 0.940597], RGBColor[0.431296, 0.709773, 0.927077]}]PlotTheme (1)
SectorOrigin (4)
By default sectors start on the left and add clockwise:
{SectorChart3D[{Labeled[{1, 3, 3}, "Begin"], {2, 2, 2}, {2, 3, 1}, {3, 2, 2}}], SectorChart3D[{Labeled[{1, 3, 3}, "Begin"], {2, 2, 2}, {2, 3, 1}, {3, 2, 2}}, SectorOrigin -> {{Pi, "Clockwise"}, 0}]}Generate a donut chart for a list of values:
SectorChart3D[{Labeled[{1, 3, 3}, "Begin"], {2, 2, 2}, {2, 3, 1}, {3, 2, 2}}, SectorOrigin -> {{Pi, "Clockwise"}, 1}]Reverse the direction of the sectors:
SectorChart3D[{Labeled[{1, 3, 3}, "Begin"], {2, 2, 2}, {2, 3, 1}, {3, 2, 2}}, SectorOrigin -> {{Pi / 2, "Counterclockwise"}, 1}]SectorChart3D[{Labeled[{1, 3, 3}, "Begin"], {2, 2, 2}, {2, 3, 1}, {3, 2, 2}}, SectorOrigin -> {{Pi / 2, "Clockwise"}, 1}]SectorSpacing (5)
Use automatically determined spacing between sectors:
data = {{{1, 1, 3}, {2, 2, 2}, {2, 3, 1}}, {{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}};SectorChart3D[data, SectorSpacing -> Automatic]data = {{{1, 1, 3}, {2, 2, 2}, {2, 3, 1}}, {{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}};SectorChart3D[data, SectorSpacing -> None]data = {{{1, 1, 3}, {2, 2, 2}, {2, 3, 1}}, {{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}};Table[SectorChart3D[data, SectorSpacing -> s, PlotLabel -> s], {s, {Tiny, Small, Medium, Large}}]Use explicit spacing between sectors:
data = {{{1, 1, 3}, {2, 2, 2}, {2, 3, 1}}, {{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}};Table[SectorChart3D[data, SectorSpacing -> s, PlotLabel -> s], {s, {Automatic, 1, 3}}]Use explicit spacing between sectors and groups of sectors:
data = {{{1, 1, 3}, {2, 2, 2}, {2, 3, 1}}, {{1, 1, 3}, {1, 2, 2}, {2, 3, 2}, {3, 2, 1}}};Table[SectorChart3D[data, SectorSpacing -> s, PlotLabel -> s], {s, {Automatic, {0.1, 1}, {0.05, 2}}}]Applications (3)
Click on the sectors to hear a detailed report on the country:
countries = CountryData["Africa"];
properties = {"GDPPerCapita", "PovertyFraction", "Population"};data = Table[With[{v = cp}, Button[v[[2 ;; 4]], Speak[StringJoin[ToString /@ {v[[1]], ", GDP per capita: $", Round[v[[2]]], ", Poverty Fraction: ", v[[3]], ", Population: ", Round[v[[4]]]}]]]], {cp, Table[Prepend[Table[QuantityMagnitude@CountryData[c, p], {p, properties}], c], {c, countries}]}];SectorChart3D[data]Highlight a 3D pie chart by extruding a sector:
data = {10, 30, 50, 40, 70};
sectorData = Table[| | |
| ----------------- | ------- |
| {data[[i]], 1, 3} | i === 3 |
| {data[[i]], 1, 1} | True |, {i, Length@data}]SectorChart3D[sectorData, PlotLabels -> data]Display GDP, poverty fraction, and population for countries in Africa:
countries = CountryData["Africa"];
properties = {"GDP", "PovertyFraction", "Population"};
data = Table[QuantityMagnitude@CountryData[c, p], {c, countries}, {p, properties}];Define a labeling function for more complex tooltips:
labeler[v_, {r_, c_}, ___] := Placed[Grid[{{Style[countries[[c]], Bold], }, {"GDP", v[[1]]}, {"Poverty", v[[2]]}, {"Population", v[[3]]}}, Alignment -> Left], Tooltip]Mouseover the bubbles to view a country's data:
SectorChart3D[data, LabelingFunction -> labeler]Properties & Relations (4)
SectorChart3D is a generalization of PieChart3D:
{SectorChart3D[{{1, 1, 1}, {2, 1, 1}, {3, 1, 1}}], PieChart3D[{1, 2, 3}]}Use SectorChart to render sectors in 2D:
SectorChart[{{2, 2}, {2, 1}, {1, 2}}]Use BubbleChart to render triples as bubbles:
BubbleChart[RandomReal[1, {3, 10, 3}]]Use ListPointPlot3D to render triples as points:
ListPointPlot3D[RandomReal[1, {25, 3}], Filling -> Bottom]Neat Examples (1)
SectorChart3D[RandomReal[10, {2, 200, 3}], ColorFunction -> "DeepSeaColors", PerformanceGoal -> "Speed", Background -> GrayLevel[0.62], PlotStyle -> EdgeForm[None]]Related Guides
History
Introduced in 2008 (7.0) | Updated in 2012 (9.0) ▪ 2014 (10.0) ▪ 2025 (14.2) ▪ 2025 (14.3) ▪ 2026 (15.0)
Text
Wolfram Research (2008), SectorChart3D, Wolfram Language function, https://reference.wolfram.com/language/ref/SectorChart3D.html (updated 2026).
CMS
Wolfram Language. 2008. "SectorChart3D." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2026. https://reference.wolfram.com/language/ref/SectorChart3D.html.
APA
Wolfram Language. (2008). SectorChart3D. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/SectorChart3D.html
BibTeX
@misc{reference.wolfram_2026_sectorchart3d, author="Wolfram Research", title="{SectorChart3D}", year="2026", howpublished="\url{https://reference.wolfram.com/language/ref/SectorChart3D.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_sectorchart3d, organization={Wolfram Research}, title={SectorChart3D}, year={2026}, url={https://reference.wolfram.com/language/ref/SectorChart3D.html}, note=[Accessed: 13-June-2026]}