Introduction
The DocOps Bar Chart Extension allows you to create visually appealing bar charts in your AsciiDoctor documents. Bar charts are useful for comparing data across categories and visualizing trends over time.
This guide will help you understand the basic concepts of bar charts, how to include them in your AsciiDoctor documents, and provide examples of different types of bar charts.
Basic Concepts
What are Bar Charts?
Bar charts in the DocOps extension are SVG-based graphical elements that can be included in your AsciiDoctor documents. Each bar chart has:
-
A title (the main heading of the chart)
-
X and Y axis labels
-
A series of data points (bars)
-
Optional display settings for customizing the appearance
The extension supports two main types of bar charts:
-
Regular Bar Charts - For comparing individual data points
-
Grouped Bar Charts - For comparing multiple data series across categories
Each type can be displayed in various styles, including:
-
Horizontal bars
-
Vertical bars
-
Cylinder-style bars
-
Dark mode charts
AsciiDoctor Syntax for Bar Charts
To include bar charts in your AsciiDoctor document, you use a special macro syntax. Here’s the basic format:
[docops,bar]
----
title=Chart Title
yLabel=Y-Axis Label
xLabel=X-Axis Label
baseColor=#4361ee
vBar=false
useDark=false
type=R
---
Category 1 | 120.0
Category 2 | 334.0
// More data points...
----
For grouped bar charts, use the following format:
[docops,bargroup]
----
title=Chart Title
yLabel=Y-Axis Label
xLabel=X-Axis Label
baseColor=#D988B9
vBar=false
condensed=false
useDark=false
---
Group 1 | Category 1 | 5000.0
Group 1 | Category 2 | 7000.0
// More data points...
Group 2 | Category 1 | 6000.0
Group 2 | Category 2 | 8000.0
// More data points...
// More groups...
----
The macro processes the configuration and data and generates an SVG representation of the bar chart that is embedded in your document.
Regular Bar Chart Properties
Configuration Properties
-
title
(required): The main heading of the chart -
yLabel
(optional): The label for the Y-axis -
xLabel
(optional): The label for the X-axis -
baseColor
(optional): The base color for the bars (default: "#FE7A36") -
type
(optional): The style of the bars ("R" for regular, "C" for cylinder) -
vBar
(optional): Whether to display vertical bars (default: false) -
useDark
(optional): Whether to use dark mode (default: false) -
sorted
(optional): Whether to sort the bars by value (default: false) -
scale
(optional): A scaling factor for the chart (default: 1.0)
Data Format
After the configuration section and the separator line (---
), each line represents a data point with the following format:
Label | Value [| Color]
-
Label
(required): The category label for the data point -
Value
(required): The numerical value for the data point -
Color
(optional): A custom color for this specific data point
Grouped Bar Chart Properties
Configuration Properties
-
title
(required): The main heading of the chart -
yLabel
(optional): The label for the Y-axis -
xLabel
(optional): The label for the X-axis -
baseColor
(optional): The base color for the chart (default: "#D988B9") -
lineColor
(optional): The color for grid lines (default: "#FFBB5C") -
vBar
(optional): Whether to display vertical bars (default: false) -
condensed
(optional): Whether to use condensed mode (default: false) -
useDark
(optional): Whether to use dark mode (default: false) -
scale
(optional): A scaling factor for the chart (default: 1.0)
Data Format
After the configuration section and the separator line (---
), each line represents a data point with the following format:
Group | Label | Value [| Color]
-
Group
(required): The name of the group -
Label
(required): The category label for the data point -
Value
(required): The numerical value for the data point -
Color
(optional): A custom color for this specific data point
Examples
Basic Bar Chart Example
Here’s a simple example of a horizontal bar chart:
[docops,bar]
----
title=Monthly Sales Performance
yLabel=Revenue ($)
xLabel=Month
baseColor=#4cc9f0
type=R
---
January | 120.0
February | 334.0
March | 455.0
April | 244.0
May | 256.0
June | 223.0
----
Vertical Bar Chart Example
You can create vertical bar charts by setting the vBar
property to true
:
[docops,bar,controls=true]
----
title=Berry Picking by Month 2024
yLabel=Number of Sales
xLabel=Month
baseColor=#4361ee
vBar=true
---
Jan | 120.0
Feb | 334.0
Mar | 455.0
Apr | 244.0
May | 256.0
Jun | 223.0
----
Cylinder-Style Bar Chart Example
You can create cylinder-style bar charts by setting the type
property to "C"
:
[docops,bar,controls=true]
----
title=Quarterly Performance
yLabel=Revenue ($)
xLabel=Quarter
baseColor=#f72585
type=C
---
Q1 | 320.0
Q2 | 480.0
Q3 | 290.0
Q4 | 410.0
----
Dark Mode Bar Chart Example
You can create dark mode bar charts by setting the useDark
property to true
:
[docops,bar,controls=true]
----
title=Monthly Sales Performance (Dark Mode)
yLabel=Revenue ($)
xLabel=Month
baseColor=#4cc9f0
useDark=true
type=R
---
January | 120.0
February | 334.0
March | 455.0
April | 244.0
May | 256.0
June | 223.0
----
Grouped Bar Chart Example
Here’s an example of a grouped bar chart:
[docops,bargroup,controls=true]
----
title=Annual Product Sales Report
yLabel=Sales (USD)
xLabel=Quarters
lineColor=#921A40
baseColor=#F3EDED
---
Product A | Q1 | 5000.0
Product A | Q2 | 7000.0
Product A | Q3 | 8000.0
Product A | Q4 | 6000.0
Product B | Q1 | 6000.0
Product B | Q2 | 8000.0
Product B | Q3 | 7000.0
Product B | Q4 | 9000.0
----
Vertical Grouped Bar Chart Example
You can create vertical grouped bar charts by setting the vBar
property to true
:
[docops,bargroup,controls=true]
----
title=Annual Product Sales Report
yLabel=Sales (USD)
xLabel=Quarters
lineColor=#921A40
baseColor=#F3EDED
vBar=true
---
Product A | Q1 | 5000.0
Product A | Q2 | 7000.0
Product A | Q3 | 8000.0
Product A | Q4 | 6000.0
Product B | Q1 | 6000.0
Product B | Q2 | 8000.0
Product B | Q3 | 7000.0
Product B | Q4 | 9000.0
----
Condensed Grouped Bar Chart Example
You can create condensed grouped bar charts by setting the condensed
property to true
:
[docops,bargroup,controls=true]
----
title=Annual Product Sales Report
yLabel=Sales (USD)
xLabel=Quarters
lineColor=#921A40
baseColor=#F3EDED
condensed=true
---
Product A | Q1 | 5000.0
Product A | Q2 | 7000.0
Product A | Q3 | 8000.0
Product A | Q4 | 6000.0
Product B | Q1 | 6000.0
Product B | Q2 | 8000.0
Product B | Q3 | 7000.0
Product B | Q4 | 9000.0
----
Conclusion
The DocOps Bar Chart Extension provides a powerful way to enhance your AsciiDoctor documents with visually appealing bar charts. By using the simple key-value configuration format and pipe-separated data, you can create customized charts that match your document’s style and purpose.
The extension supports both regular and grouped bar charts, with various display options including horizontal/vertical orientation, cylinder style, dark mode, and condensed mode for grouped charts.