This is documentation for Mathematica 8, which was
based on an earlier version of the Wolfram Language.

# BarChart

 BarChart makes a bar chart with bar lengths , , .... BarChartmakes a bar chart with bar features defined by the symbolic wrappers . BarChartmakes a bar chart from multiple datasets .
• Data elements for BarChart can be given in the following forms:
 yi a pure bar value wi[yi,...] a bar with value and wrapper formi->mi a bar form with metadata
• Data not given in these forms is taken to be missing, and typically yields a gap in the bar chart.
• Datasets for BarChart can be given in the following forms:
 {e1,e2,...} list of elements with or without wrappers w[{e1,e2,...},...] wrapper applied to a whole dataset w[{data1,data1,...},...] wrapper applied to all datasets
• 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
 Top,Bottom,Left,Right,Center positions within bars Above, Below, Before, After positions outside bars Axis on the bar origin axis {{bx,by},{lx,ly}} scaled position in the label at scaled position in the bar
• BarChart has the same options as Graphics with the following additions and changes:
 AspectRatio 1/GoldenRatio overall ratio of width to height Axes True whether to draw axes BarOrigin Bottom origin placement for bars BarSpacing Automatic fractional spacing between bars ChartBaseStyle Automatic overall style for bars ChartElementFunction Automatic how to generate raw graphics for bars ChartElements Automatic graphics to use in each of the bars ChartLabels None labels for data elements and datasets ChartLayout Automatic overall layout to use ChartLegends None legends for data elements and datasets ChartStyle Automatic style for bars ColorFunction Automatic how to color bars ColorFunctionScaling True whether to normalize arguments to ColorFunction Joined False whether to join bars LabelingFunction Automatic how to label bars LegendAppearance Automatic overall appearance of legends PerformanceGoal \$PerformanceGoal aspects of performance to try to optimize ScalingFunctions None how to scale individual coordinates
• The arguments supplied to ChartElementFunction are the bar region , the data value , and metadata from each level in a nested list of datasets.
Generate a bar chart for a list of heights:
Chart several datasets:
Use categorical labels:
Categorical legends:
Set the style for bars:
Pictorial bars:
Procedural bars:
Generate a bar chart for a list of heights:
 Out[1]=

Chart several datasets:
 Out[1]=

Use categorical labels:
 Out[1]=
Categorical legends:
 Out[2]=

Set the style for bars:
 Out[1]=
Pictorial bars:
 Out[2]=
Procedural bars:
 Out[3]=
 Scope   (27)
Items in a dataset are grouped together:
Datasets do not need to have the same number of items:
Nonreal data is taken to be missing and typically yields a gap in the bar chart:
Use different layouts to display multiple datasets:
Stacked layouts are more compact in the horizontal direction:
Use Joined to indicate connections between data points:
Control the origin of bars:
Adjust the spacing between bars and groups of bars:
Use wrappers on individual data, datasets, or collections of datasets:
Wrappers can be nested:
Override the default tooltips:
Use any object in the tooltip:
Use PopupWindow to provide additional drilldown information:
Button can be used to trigger any action:
Use an explicit list of styles for the bars:
Use any gradient or indexed color schemes from ColorData:
Use color schemes designed for charting:
ChartBaseStyle can be used to set an initial style for all chart elements:
Style can be used to override styles:
Use any graphic for pictorial bars:
Use built-in programmatically generated bars:
For detailed settings use PalettesChartElementSchemes:
Use Labeled to add a label to a bar:
Use symbolic positions for label placement:
Provide categorical labels for the columns of data:
For rows of data:
For both:
Use Placed to control the positioning of labels, using the same positions as for Labeled:
Provide value labels for bars by using LabelingFunction:
Use Placed to control placement and formatting:
Add categorical legend entries for the columns of data:
For rows of data:
Use Placed to affect the positioning of legends:
 Options   (71)
Change the bar origin:
Use automatically determined spacing between bars:
Use no spacing:
Use symbolic presets:
Use explicit spacing between bars:
Use explicit spacing between bars and groups of bars:
Use ChartBaseStyle to style bars:
ChartBaseStyle combines with ChartStyle:
ChartStyle may override settings for ChartBaseStyle:
ChartBaseStyle combines with Style:
Style may override settings for ChartBaseStyle:
ColorFunction may override settings for ChartBaseStyle:
Create a pictorial chart based on any Graphics object:
Use a stretched version of the graphic:
Use explicit sizes for width and height:
Without AspectRatio->Full, the original aspect ratio is preserved:
Using All for width or height causes that direction to stretch to the full size of the bar:
Use a different graphic for each column of data:
Use a different graphic for each row of data:
Graphics are used cyclically:
Styles are inherited from styles set through ChartStyle etc.:
Explicit styles set in the graphic will override other style settings:
The orientation of the pictorial graphic is unaffected by BarOrigin:
Get a list of built-in settings for ChartElementFunction:
For detailed settings use PalettesChartElementSchemes:
This ChartElementFunction is appropriate to show the global scale:
Write a custom ChartElementFunction:
Use metadata passed on from the input, in this case charting the data:
Built-in element function may have options; use PalettesChartElementSchemes to set them:
By default labels are placed in the axis:
Labeled wrappers in data will place additional labels:
Use Placed to control label placement:
Symbolic positions outside the bar:
Coordinate-based placement relative to a bar:
Place all labels at the upper-right corner and vary the coordinates within the label:
Use the third argument to Placed to control formatting:
Rotate the labels:
By default labels are associated with columns of data:
Associate labels with rows or datasets:
Label both rows and columns:
Use Placed to affect placements:
Place multiple labels:
ChartLayout is grouped by default:
Use stepped bars:
Use stacked bars:
The stacked layout can effectively display many datasets:
Show changes for different categories by setting Joined->True:
Generate a legend based on chart style:
Use Legended to specify individual legend entries:
Generate a legend for datasets:
Unused legend labels are dropped:
Legends can be applied to several dimensions:
Use Placed to control the placement of legends:
Use ChartStyle to style bars:
Give a list of styles:
Use "Indexed" colors from ColorData:
Use indexed colors optimized for charting:
Styles are used cyclically:
Style each column of data:
Style each row of data:
Style both rows and columns of data:
With both row and column styles, the last style may override earlier ones:
Style overrides settings for ChartStyle:
ColorFunction overrides settings for ChartStyle:
ChartElements may override settings for ChartStyle:
Color by bar height:
Use ColorFunctionScaling->False to get unscaled height values:
ColorFunction overrides styles in ChartStyle:
Use ColorFunction to combine different style effects:
By default scaled height values are used:
Use ColorFunctionScaling->False to get unscaled height values:
By default bars are not joined:
Join the centers of the tops of the bars:
Join the corners of the bars:
Join stacked bars:
Use automatic labeling by values through Tooltip and StatusArea:
Do no labeling:
Use symbolic positions to control label placement:
Symbolic positions outside the bar:
Coordinate-based placement relative to a bar:
Control the formatting of labels:
Use the given chart labels as arguments to the labeling function:
Place complete labels as tooltips:
Generate a bar chart with interactive highlighting:
Emphasize performance by disabling interactive behaviors:
Typically less memory is required for noninteractive charts:
 Applications   (11)
Create a bar chart of the frequency of characters in the Declaration of Independence:
Apply labels at multiple levels:
Click on the color selector and see the bar chart of updated color components:
Click on the bars to hear the name of the country and its GDP per capita:
Create a progressive bar chart:
Create a progressive column graph:
Create a Gantt chart of employees' holidays in January:
Mouse over the bars and gridlines for the number of days:
Use images of textures from ExampleData as pictorial bars:
Color the textures:
Create a bar chart with textured bars:
Acoustically compare the percentage price change of a list of companies:
Click on a dataset in the bar chart to hear an acoustic representation of the values:
Compare price trends for a portfolio of companies:
Create a labeling function:
Mouse over the bars to get price information:
Get the population in the G8 countries:
Use ChartElements to get pictorial bars:
Highlight the G8 countries on a world map:
Overlay the chart on the map:
Use BarChart3D to get a 3D rendering of bar charts:
BarChart is a special case of RectangleChart:
Use PieChart and PieChart3D to visualize a list of data as sectors:
Use ListPlot and ListLinePlot to produce line graphs:
Use Histogram to automatically compute binning and draw histograms:
Chartwork with stacked bars:
Chartwork with stacked bars:
Chartwork with percentile bars: