Charts
Links in Big Number charts
Bullet chart
Sparklines in Big Number charts
Chart heights
Chart annotations
Choropleth map
Force-directed graph
Funnel chart
Geographic heat map
Google Maps with markers
Heat map
Hive plot
Horizontal bar chart
Network matrix
Creating Chart Annotations using Matplotlib
Creating Histograms using Pandas
Creating Horizontal Bar Charts using Pandas
How to Create R Histograms & Stylize Data
Creating Horizontal Bar Charts using R
Sunburst chart
State choropleth map
Word cloud
World choropleth map
Zipcode choropleth map
How to implement gallery examples using the HTML editor
Hive plot
Hive plots show how objects in network are related to each other. Like force-directed graphs, hive plots communicate how nodes are related through their position in the visualization. Unlike force-directed graphs, however, hive plots position nodes in a more orderly fashion, creating both a cleaner visualization and one capable of describing more information.
This diagram was based on Mike Bostock's hive plot.
Create a hive plot
This hive plot shows the connections between bike share stations in the San Francisco Bay Area. Each axis represents a city. Each circle on the axes represents a bike station in that city. The further the circle is away from the center of the chart, the "bigger" the node (in this case, the more trips originate from that station). If a trip connects two stations, then a line is drawn between the two stations. Though it's not used in this example, the angle of the axis can also communicate addition information.
Click Powered by Mode to duplicate this report and add links to your tables. Learn more about using HTML to customize your reports.
Add the stylesheet link and script tag to the top of the HTML:
<link rel="stylesheet" href="https://mode.github.io/alamode/alamode.min.css">
<script src="https://mode.github.io/alamode/alamode.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3-tip/0.6.7/d3-tip.min.js"></script>
This tag calls back to an open-source library called alamode.js, which provides an easy way to build some of our users' favorite visualizations.
Add the customizable snippet at the bottom of the HTML:
<script>
alamode.hive(
{
"html_element": "#hive",
"node_query": "Stations",
"edge_query": "Trips",
"groups_are_numeric": false,
"title": "SF Bike Share network",
"chart_width": 1000,
"chart_height": 1000,
"padding_for_names": 50,
"group_colors": {
"San Francisco": "#37B067",
"San Jose": "#894FBA",
"Mountain View": "#22A3C0",
"Palo Alto": "#EE7437",
"Redwood City": "#DA364A"
}
}
)
</script>
You can customize the hive plot by editing each of these parameters in the snippet:
html_element
: If not provided, the map will be added as the last element in the report. To place it elsewhere, select an element in your report with this parameter.node_query
: The name of the query that returns the dataset you want to use as your nodes. Details about what should be in this query are shown below.edge_query
: The name of the query that returns the dataset you want to use as your edges. Details about what should be in this query are shown below.groups_are_numeric
: If thenode_group
values in thenode_query
are numeric, setting this parameter totrue
will use these values to determine the angle of the group axes. The lowest value will be positioned on to 12 o'clock axis, with axes rotating clockwise as they increase.title
: The hive plot's title.chart_width
: Width of the chart in pixels.chart_height
: Height of the chart in pixels.group_colors
: Hex codes for the colors of each group.
Guidelines for hive plot queries
Unlike most of the other examples in the Gallery, hive plots require two queries.
The first query is the node_query
. This query should return one row for each node in your network. The query should include at least two columns:
node
: The name of the node.node_group
: The name of the group the node belongs to.node_size
: A value representing the size of your node. This determines each circle's position on its axis.
The second query is the edge_query
. This query should return one row per edge in your network. The query should include at least three columns:
source
: The name of the source node.target
: The name of the target node.edge_size
: A value representing the strength of the connection.