• Demos
    • JavaScript Charts
    • JavaScript StockCharts
  • Download/NPM
    • Download CanvasJS
    • Install via NPM
  • Integrations
    Front End Technology Samples
    • React Charts
    • Angular Charts
    • Vue.js Charts New!
    • jQuery Charts
    • Dashboards
    Server Side Technology Samples
    • PHP Charts
    • Python Charts New!
    • ASP.NET MVC Charts
    • Spring MVC Charts
    • JSP Charts
  • License
  • Blog
  • Docs
    • Chart Documentation
    • StockChart Documentation
  • Support Forum
    • Chart Support
    • StockChart Support
  • My Account
My Account
  • KEY FEATURES
    • Basic Chart
    • Chart with Animation
    • Chart with Zooming/Panning
    • Multi Series Chart
    • Chart with Multiple Axes
    • Chart with Logarithmic Axis
    • Chart with JSON Data
    • Dynamic Chart
    • Drilldown Chart
    • Responsive Chart
    • Synchronized Charts
  • LINE CHARTS
    • Line Chart
    • Dashed Line Chart
    • Multi Series Line Chart
    • Spline Chart
    • Multi Series Spline Chart
    • Step Line Chart
    • Multi Series Step Line Chart
  • BAR CHARTS
    • Bar Chart with Category Axis
    • Multi Series Bar Chart
    • Stacked Bar Chart
    • Stacked Bar 100% Chart
  • COLUMN CHARTS
    • Column Chart with Category Axis
    • Column Chart in Dark Theme
    • Multi Series Column Chart
    • Stacked Column Chart
    • Stacked Column 100% Chart
  • PIE & DOUGHNUT CHARTS
    • Pie Chart
    • Doughnut Chart
    • Doughnut Chart in Dark Theme
  • AREA CHARTS
    • Area Chart with Markers
    • Multi Series Area Chart
    • Spline Area Chart
    • Multi Series Spline Area Chart
    • Step Area Chart
    • Stacked Area Chart
    • Stacked Area 100% Chart
  • RANGE CHARTS
    • Range Column Chart
    • Multi Series Range Column Chart
    • Range Bar Chart
    • Multi Series Range Bar Chart
    • Range Area Chart
    • Multi Series Range Area Chart
    • Range Spline Area Chart
    • Multi Series Range Spline Area Chart
  • BUBBLE & SCATTER CHARTS
    • Bubble Chart with 3-Dimensional Data
    • Bubble Chart in Dark Theme
    • Scatter Chart
    • Multi Series Scatter Chart
  • FUNNEL & PYRAMID CHARTS
    • Funnel Chart with Index Labels
    • Funnel Chart without Neck
    • Pyramid Chart
  • FINANCIAL CHARTS
    • Candlestick Chart
    • Candlestick Chart from JSON Data
    • OHLC Chart
    • OHLC Chart from JSON Data
    • Box & Whisker Chart
    • Waterfall Chart
  • COMBINATION CHARTS
    • Pareto Chart
    • Error Bar Chart
    • Combination of Range Area & Line Chart
    • Combination of Candlestick & Line chart
  • DYNAMIC CHARTS
    • Dynamic Line Chart
    • Dynamic Column Chart
  • DATA BINDING
    • Chart with Data from CSV
    • Chart with Data from Database
    • Chart with Date-Time Axis from Database
  • JAVASCRIPT, JQUERY, REACT, ANGULAR, VUE.JS
    • JavaScript Charts
    • jQuery Charts
    • React Charts
    • Angular Charts
    • Vue.js Charts
  • SERVER SIDE TECHNOLOGIES
    • ASP.NET MVC Charts
    • PHP Charts
    • Spring MVC Charts
    • JSP Charts

Python Multi Series Range Bar Chart using Django

Download Python Django Chart Samples
  • Python Django Chart Samples
  • JavaScript Chart Samples
  • React Chart Samples
  • Angular Chart Samples
  • Vue.js Chart Samples
  • jQuery Chart Samples
  • PHP Chart Samples
  • ASP.NET Chart Samples
  • JSP Chart Samples
  • Spring MVC Chart Samples
  • Dashboard Samples
  • JavaScript StockChart Samples

Example shows Python Multi Series Range Bar Chart where bars from different series sharing same x-value are placed one below the other. Demo also includes Django source code that you can try running locally.

  • Template
  • View
<!-- index.html -->
{% load static %}
<html>
<head>
<title>CanvasJS Python Charts</title>
<script>
  window.onload = function () {
    var chart = new CanvasJS.Chart("chartContainer", {
      theme: "dark1",
      animationEnabled: true,
      title: {
        text: "Temperature Variation Comparison",
        fontFamily: "Arial"
      },
      axisY: {
        valueFormatString: "#0.##°C",
        title: "Temperature (°C)"
      },
      axisX: {
        valueFormatString: "MMM"
      },
      toolTip: {
        shared: true
      },
      legend: {
        verticalAlign: "top",
        cursor: "pointer",
        itemclick: hideUnhideDataSeries
      },
      data: [{
          type: "rangeBar",
          name: "Denver",
          showInLegend: true,
          legendText: "Denver, CO",
          yValueFormatString: "#0.##°C",
          xValueFormatString: "MMM YYYY",
          xValueType: "dateTime",
          markerSize: 0,
          content: "<b>{name}</b> Min: {y[0]}, Max: {y[1]}",
          bevelEnabled: true,
          dataPoints: {{ denver_weather_data|safe }}
      },{
          type: "rangeBar",
          name: "Seattle",
          showInLegend: true,
          legendText: "Seattle, WA",
          yValueFormatString: "#0.##°C",
          xValueFormatString: "MMM YYYY",
          xValueType: "dateTime",
          markerSize: 0,
          bevelEnabled: true,
          content: "<b>{name}</b> Min: {y[0]}, Max: {y[1]}",
          dataPoints: {{ seattle_weather_data|safe }}
      }]
    });
    chart.render();

    function hideUnhideDataSeries(e) {
      if (typeof (e.dataSeries.visible) === "undefined" || e.dataSeries.visible) {
        e.dataSeries.visible = false;
      } else {
        e.dataSeries.visible = true;
      }
      e.chart.render();
    }
  }
</script>
</head>
<body>
    <div id="chartContainer" style="width: 100%; height: 360px;"></div>
    <script src="{% static 'canvasjs.min.js' %}"></script>
</body>
</html>                              
from django.shortcuts import render

def index(request):
    denver_weather_data = [
        { "x": 1609459200000, "y": [-20, 19.4444] },
        { "x": 1612137600000, "y": [-27.8, 21.1111] },
        { "x": 1614556800000, "y": [-15, 25.6] },
        { "x": 1617235200000, "y": [-16.7, 28.8889] },
        { "x": 1619827200000, "y": [-6.1, 32.2] },
        { "x": 1622505600000, "y": [-0.6, 40] },
        { "x": 1625097600000, "y": [5.6, 40.6] },
        { "x": 1627776000000, "y": [3.3, 37.8] },
        { "x": 1630454400000, "y": [-2.2, 38.3] },
        { "x": 1633046400000, "y": [-7.8, 31.1] },
        { "x": 1635724800000, "y": [-13.3, 28.3] },
        { "x": 1638316800000, "y": [-17.8, 27.8] }
    ]

    seattle_weather_data = [
        { "x": 1609459200000, "y": [-9.4, 15] },
        { "x": 1612137600000, "y": [-8.9, 12.8] },
        { "x": 1614556800000, "y": [-4.389, 20] },
        { "x": 1617235200000, "y": [-5, 27.2222] },
        { "x": 1619827200000, "y": [0.6, 27.8] },
        { "x": 1622505600000, "y": [2.8, 44.4] },
        { "x": 1625097600000, "y": [6.722, 35] },
        { "x": 1627776000000, "y": [6, 36.1] },
        { "x": 1630454400000, "y": [1.7, 29.4444] },
        { "x": 1633046400000, "y": [-2.8, 22.2] },
        { "x": 1635724800000, "y": [-4.4, 18.3] },
        { "x": 1638316800000, "y": [-13.3, 15.5556] }
    ]

    return render(request, 'index.html', { "denver_weather_data" : denver_weather_data, "seattle_weather_data": seattle_weather_data })                        

Chart Customizations

Indexlabels can be shown for the datapoints using indexLabel property. The placement &orientation of indexlabels can be customized using indexLabelPlacement &indexLabelOrientation properties. Some other commonly used customization includes indexLabelFontSize, indexLabelBackgroundColor, etc.

Quick Links

  • Chart Docs
  • StockChart Docs
  • About Us
  • FAQs

Server Side Technologies

  • ASP.NET MVC Charts
  • PHP Charts
  • JSP Charts
  • Spring MVC Charts

Front Side Technologies

  • JavaScript Charts
  • jQuery Charts
  • React Charts
  • Angular Charts
  • JavaScript StockCharts

Contact

  • Fenopix, Inc.
  • 2093 Philadelphia Pike,
  • #5678, Claymont,
  • Delaware 19703
  • United States Of America

©2025 Fenopix Privacy Policy Cookies Policy Careers