Ten-minute readings over two nights with a shaded period

Time series charts in CanvasXpress show how values change over calendar time: annual, monthly and daily series as lines, step lines, areas, columns and small multiples, with confidence bands, projections, shaded periods, event callouts, dual axes and direct end labels. These examples recreate editorial chart idioms (the Datawrapper reference set) with synthetic data and publication-style themes; every one of them is an ordinary Scatter2D, Line, Area, AreaLine, Bar, BarLine or Stacked configuration, so the same options apply to your own dated data.


Economist GGPlot Excel Paul Tol Black And White Solarized Stata Tableau Wall Street CanvasXpress
<html>

  <head>
    <!-- Include the CanvasXpress library in your HTML file -->
    <link rel="stylesheet" href="https://www.canvasxpress.org/dist/canvasXpress.css" type="text/css"/>
    <script src="https://www.canvasxpress.org/dist/canvasXpress.min.js"></script>
  </head>

  <body>

    <!-- Create a canvas element for the chart with the desired dimensions -->
    <div>
      <canvas id="canvasId" width="600" height="600"></canvas>
    </div>


    <!-- Create a script to initialize the chart -->
    <script>

      // Use a data frame (2D-array) for the graph
      var data = 

      // Create the configuration for the graph
      var config = {
         "graphType" : "Line",
         "theme" : "editorial",
         "title" : "Night temperatures lowered with AC and then bounced back",
         "colors" : [
            "#7f5349",
            "#bcbcbc"
         ],
         "colorScheme" : "User",
         "showLineEndLabels" : false,
         "showLegend" : true,
         "numberFormat" : {
            "style" : "decimal",
            "decimals" : 0,
            "suffix" : "°C"
         },
         "tooltipNumberFormat" : {
            "style" : "decimal",
            "decimals" : 1,
            "suffix" : "°C"
         },
         "smpLabelInterval" : 18,
         "yAxisTitle" : "",
         "smpTitle" : "",
         "notes" : "Room temperature measured by a local sensor.\nOutside temperature as recorded by German weather service.",
         "source" : "Deutscher Wetterdienst (DWD)",
         "byline" : "Chart: CanvasXpress",
         "showDataDownload" : true,
         "graphOrientation" : "vertical",
         "decorations" : {
            "range" : [
               {
                  "smp" : "9:10 pm",
                  "smp2" : "3 am​",
                  "color" : "rgba(115,200,229,0.2)",
                  "label" : ""
               }
            ],
            "marker" : [
               {
                  "text" : "AC switched on,\nroom cooled\ndown by 6 °C",
                  "variable" : "Room temperature (°C)",
                  "sample" : "9:20 pm",
                  "type" : "text",
                  "x" : 0.76,
                  "y" : 0.13,
                  "color" : "#0b4a60"
               },
               {
                  "text" : "The weather changed and made\noutside temperature drop",
                  "variable" : "Room temperature (°C)",
                  "sample" : "7:40 pm",
                  "type" : "curved",
                  "x" : 0.5,
                  "y" : 0.57,
                  "color" : "#6b7280",
                  "lineColor" : "#6b7280"
               }
            ]
         },
         "legendPosition" : "top",
         "titleFontStyle" : "bold",
         "legendTextScaleFontFactor" : 0.9,
         "xAxisTextScaleFontFactor" : 0.85,
         "yAxisTextScaleFontFactor" : 0.85,
         "citationScaleFontFactor" : 0.62,
         "smpTextRotate" : 90,
         "legendColumns" : 2
      }

      // Event used to create graph (optional)
      var events = false

      // Call the CanvasXpress function to create the graph
      var cX = new CanvasXpress("canvasId", data, config, events);

    </script>

  </body>

</html>
<html>

  <head>
    <!-- Include the CanvasXpress library in your HTML file -->
    <link rel="stylesheet" href="https://www.canvasxpress.org/dist/canvasXpress.css" type="text/css"/>
    <script src="https://www.canvasxpress.org/dist/canvasXpress.min.js"></script>
  </head>

  <body>

    <!-- Create a canvas element for the chart with the desired dimensions -->
    <div>
      <canvas id="canvasId" width="600" height="600"></canvas>
    </div>


    <!-- Create a script to initialize the chart -->
    <script>

      // Create the data for the graph
      var data = {
         "y" : {
            "vars" : [
               "Room temperature (°C)",
               "Outside temperature (°C)"
            ],
            "smps" : [
               "12 am\nJul 31",
               "12:10 am",
               "12:20 am",
               "12:30 am",
               "12:40 am",
               "12:50 am",
               "1 am",
               "1:10 am",
               "1:20 am",
               "1:30 am",
               "1:40 am",
               "1:50 am",
               "2 am",
               "2:10 am",
               "2:20 am",
               "2:30 am",
               "2:40 am",
               "2:50 am",
               "3 am",
               "3:10 am",
               "3:20 am",
               "3:30 am",
               "3:40 am",
               "3:50 am",
               "4 am",
               "4:10 am",
               "4:20 am",
               "4:30 am",
               "4:40 am",
               "4:50 am",
               "5 am",
               "5:10 am",
               "5:20 am",
               "5:30 am",
               "5:40 am",
               "5:50 am",
               "6 am",
               "6:10 am",
               "6:20 am",
               "6:30 am",
               "6:40 am",
               "6:50 am",
               "7 am",
               "7:10 am",
               "7:20 am",
               "7:30 am",
               "7:40 am",
               "7:50 am",
               "8 am",
               "8:10 am",
               "8:20 am",
               "8:30 am",
               "8:40 am",
               "8:50 am",
               "9 am",
               "9:10 am",
               "9:20 am",
               "9:30 am",
               "9:40 am",
               "9:50 am",
               "10 am",
               "10:10 am",
               "10:20 am",
               "10:30 am",
               "10:40 am",
               "10:50 am",
               "11 am",
               "11:10 am",
               "11:20 am",
               "11:30 am",
               "11:40 am",
               "11:50 am",
               "12 pm",
               "12:10 pm",
               "12:20 pm",
               "12:30 pm",
               "12:40 pm",
               "12:50 pm",
               "1 pm",
               "1:10 pm",
               "1:20 pm",
               "1:30 pm",
               "1:40 pm",
               "1:50 pm",
               "2 pm",
               "2:10 pm",
               "2:20 pm",
               "2:30 pm",
               "2:40 pm",
               "2:50 pm",
               "3 pm",
               "3:10 pm",
               "3:20 pm",
               "3:30 pm",
               "3:40 pm",
               "3:50 pm",
               "4 pm",
               "4:10 pm",
               "4:20 pm",
               "4:30 pm",
               "4:40 pm",
               "4:50 pm",
               "5 pm",
               "5:10 pm",
               "5:20 pm",
               "5:30 pm",
               "5:40 pm",
               "5:50 pm",
               "6 pm",
               "6:10 pm",
               "6:20 pm",
               "6:30 pm",
               "6:40 pm",
               "6:50 pm",
               "7 pm",
               "7:10 pm",
               "7:20 pm",
               "7:30 pm",
               "7:40 pm",
               "7:50 pm",
               "8 pm",
               "8:10 pm",
               "8:20 pm",
               "8:30 pm",
               "8:40 pm",
               "8:50 pm",
               "9 pm",
               "9:10 pm",
               "9:20 pm",
               "9:30 pm",
               "9:40 pm",
               "9:50 pm",
               "10 pm",
               "10:10 pm",
               "10:20 pm",
               "10:30 pm",
               "10:40 pm",
               "10:50 pm",
               "11 pm",
               "11:10 pm",
               "11:20 pm",
               "11:30 pm",
               "11:40 pm",
               "11:50 pm",
               "12 am​\nAug 1",
               "12:10 am​",
               "12:20 am​",
               "12:30 am​",
               "12:40 am​",
               "12:50 am​",
               "1 am​",
               "1:10 am​",
               "1:20 am​",
               "1:30 am​",
               "1:40 am​",
               "1:50 am​",
               "2 am​",
               "2:10 am​",
               "2:20 am​",
               "2:30 am​",
               "2:40 am​",
               "2:50 am​",
               "3 am​",
               "3:10 am​",
               "3:20 am​",
               "3:30 am​",
               "3:40 am​",
               "3:50 am​",
               "4 am​",
               "4:10 am​",
               "4:20 am​",
               "4:30 am​",
               "4:40 am​",
               "4:50 am​",
               "5 am​",
               "5:10 am​",
               "5:20 am​",
               "5:30 am​",
               "5:40 am​",
               "5:50 am​",
               "6 am​",
               "6:10 am​",
               "6:20 am​",
               "6:30 am​",
               "6:40 am​",
               "6:50 am​",
               "7 am​",
               "7:10 am​",
               "7:20 am​",
               "7:30 am​",
               "7:40 am​",
               "7:50 am​",
               "8 am​",
               "8:10 am​",
               "8:20 am​",
               "8:30 am​",
               "8:40 am​",
               "8:50 am​",
               "9 am​",
               "9:10 am​",
               "9:20 am​",
               "9:30 am​",
               "9:40 am​",
               "9:50 am​",
               "10 am​"
            ],
            "data" : [
               [
                  26.8005641181853,
                  26.82433238371585,
                  26.853677303152107,
                  26.880984732781304,
                  26.888503829841206,
                  26.878461026996092,
                  26.905544437916156,
                  26.59823606671647,
                  26.615677472645434,
                  26.51110665604814,
                  26.425656046307864,
                  26.475958962203304,
                  26.578066395540237,
                  26.73883322875887,
                  26.858848384434474,
                  27.010837521879616,
                  27.08625976261235,
                  27.295904629420157,
                  27.50023244224358,
                  27.624835221850127,
                  27.6177061760231,
                  27.616814974821914,
                  27.706265309413663,
                  28.012777818767603,
                  28.083095661984526,
                  28.212356853072883,
                  28.482721167735708,
                  28.683708269231552,
                  28.850957018316514,
                  29.038797706382546,
                  29.219959766987635,
                  29.367228354067812,
                  29.52387924439596,
                  29.410254957607084,
                  29.455467425681025,
                  29.49053058532157,
                  29.51143731759842,
                  29.596965527953785,
                  29.811104341019636,
                  29.787085964549664,
                  29.940482204605008,
                  29.926298129723012,
                  29.909060358569217,
                  29.971866734836063,
                  30.00432185594628,
                  30.097326645596883,
                  30.12869972259013,
                  30.252242137823004,
                  30.240846242374722,
                  30.19325938687789,
                  30.213266965775063,
                  30.587313711530896,
                  30.722943463023523,
                  30.822954237562072,
                  30.95977671488796,
                  31.009652153103325,
                  30.95429736035727,
                  30.90661502253222,
                  31.1033404789072,
                  31.158541519364167,
                  31.31395649398479,
                  31.24397912283586,
                  31.166097113697766,
                  31.158138973249162,
                  31.12298692593067,
                  31.15227218149447,
                  31.258551145637256,
                  31.289040743347385,
                  31.1938430454011,
                  31.108566287008415,
                  31.07243125654943,
                  31.05646476645499,
                  31.13381926421878,
                  31.2206358895408,
                  31.148027991951494,
                  31.057884304821755,
                  30.987379442101535,
                  30.93851946100982,
                  30.876502137382907,
                  30.889508704165657,
                  30.804275410512492,
                  30.822655166710824,
                  30.822438047279086,
                  30.74238147560784,
                  30.624053488509567,
                  30.522373107516216,
                  30.475503555289485,
                  30.39803410062502,
                  30.336342886662475,
                  30.270830084035055,
                  30.219255731754025,
                  30.167236897399516,
                  30.092878930427286,
                  29.346647841148418,
                  28.422893423070576,
                  28.322660943483157,
                  27.955854032084197,
                  27.419549750181837,
                  27.652174096371056,
                  27.424142938484902,
                  27.593531577509662,
                  27.61342807862082,
                  27.04424691083746,
                  26.6623531874533,
                  26.868330774081706,
                  26.565036709935793,
                  26.352914541502024,
                  26.52292390868815,
                  26.750140064316053,
                  26.500803361783927,
                  25.84679299438833,
                  25.660561608007793,
                  25.587602596242345,
                  25.393209696459635,
                  25.04929402451078,
                  25.151873203804776,
                  25.197695703154867,
                  25.0163852039858,
                  24.87127856892476,
                  24.867291262297183,
                  24.59223835257142,
                  24.458600047818937,
                  24.542309389710397,
                  24.60788340437925,
                  24.552374021300487,
                  24.522585278151023,
                  24.621786759206834,
                  25.041646738415277,
                  25.443814946007983,
                  25.88537777316777,
                  26.059122435532053,
                  26.23553363282922,
                  26.358098025992824,
                  26.439766335173044,
                  26.48587183887229,
                  26.57553694771308,
                  26.609290112425306,
                  26.621030921314958,
                  26.61383727543255,
                  26.66207541720154,
                  26.72034392015283,
                  26.81165983604287,
                  26.811902301996877,
                  26.855894422742317,
                  26.914202720351472,
                  26.895324586965586,
                  26.87854705681113,
                  26.94299511216081,
                  26.91677788321215,
                  26.90282576817388,
                  26.87181962862747,
                  26.87779890122161,
                  26.948902025143223,
                  26.96394476147355,
                  26.87616541390896,
                  26.877928552712763,
                  26.925217862296716,
                  26.954127165632958,
                  26.857449100334055,
                  26.835963712296632,
                  26.880508144544997,
                  26.80815416723808,
                  26.873250198159006,
                  26.924580510403736,
                  26.888191033980085,
                  26.96239101021788,
                  27.017536814883908,
                  26.968926826363695,
                  26.960725824948412,
                  26.938409427247915,
                  26.865203649619154,
                  26.839311414483735,
                  26.797368497451487,
                  26.728943512670675,
                  26.727570278251584,
                  26.713554076617044,
                  26.67058888307821,
                  26.63136778699923,
                  26.691135649322963,
                  26.840693129127374,
                  26.344571983127377,
                  25.776393620613323,
                  25.280402447056368,
                  25.47644353630227,
                  25.828235545350026,
                  25.994042641275435,
                  25.807090985298288,
                  25.809334916638456,
                  26.173443853649285,
                  26.157705531138937,
                  26.32515585432937,
                  26.3406894692322,
                  26.366590265744584,
                  26.428874344278164,
                  26.63153342122131,
                  26.313133986276377,
                  26.211929976946873,
                  26.37390238758968,
                  26.729364566413988,
                  26.51745477614072,
                  27.057853623078323,
                  27.323993271260655,
                  27.4248694792646,
                  27.736477373273402,
                  28.092663015387398
               ],
               [
                  16.1,
                  16.3,
                  16.5,
                  16.9,
                  17.3,
                  17.7,
                  18,
                  18.3,
                  18.7,
                  18.8,
                  19,
                  19,
                  19.4,
                  19.8,
                  20,
                  20.2,
                  20.8,
                  21.3,
                  21.3,
                  21.6,
                  21.4,
                  21.4,
                  21.7,
                  22,
                  22.5,
                  22,
                  23,
                  23.5,
                  23.1,
                  24.1,
                  23.4,
                  24.2,
                  23.9,
                  24,
                  25,
                  24.9,
                  25.3,
                  25.6,
                  25.9,
                  26.8,
                  26.3,
                  26.5,
                  26.2,
                  26.5,
                  26.8,
                  26.7,
                  27.5,
                  27.3,
                  27.3,
                  27.4,
                  27.6,
                  28.5,
                  28.2,
                  28.2,
                  28.1,
                  28.3,
                  28.7,
                  29.2,
                  29.8,
                  29.4,
                  29.5,
                  29.6,
                  29.2,
                  29.2,
                  29.4,
                  29.9,
                  29.9,
                  29.8,
                  29.6,
                  29.3,
                  29.4,
                  29.5,
                  30.3,
                  30.1,
                  29.5,
                  29.6,
                  29.8,
                  29.4,
                  29.5,
                  29.4,
                  28.9,
                  29,
                  29,
                  27.2,
                  23.3,
                  19.6,
                  19.9,
                  19.6,
                  20.3,
                  20.3,
                  20.1,
                  20,
                  20.1,
                  20,
                  20.1,
                  20.4,
                  20.4,
                  20.3,
                  20.4,
                  20.3,
                  20.1,
                  20.4,
                  20.2,
                  20.1,
                  20,
                  19.9,
                  19.7,
                  19.7,
                  19.8,
                  19.7,
                  19.8,
                  19.5,
                  19.3,
                  19.6,
                  19.8,
                  19.9,
                  19.8,
                  19.7,
                  19.9,
                  19.9,
                  19.9,
                  19.9,
                  20,
                  19.9,
                  19.6,
                  19.6,
                  19.7,
                  19.7,
                  19.6,
                  19.5,
                  19.6,
                  19.5,
                  19.4,
                  19.4,
                  19,
                  19,
                  19,
                  19.1,
                  19.1,
                  19.1,
                  19,
                  19,
                  19.1,
                  19.1,
                  18.9,
                  18.7,
                  18.5,
                  18.4,
                  18.3,
                  18.2,
                  18.1,
                  18.1,
                  18.1,
                  18.1,
                  17.9,
                  17.7,
                  17.5,
                  17,
                  17,
                  17,
                  17,
                  16.9,
                  16.9,
                  16.9,
                  16.9,
                  17,
                  17.1,
                  17.1,
                  17,
                  17.1,
                  17.1,
                  17.1,
                  17.1,
                  17,
                  17,
                  17.1,
                  17.1,
                  17.1,
                  17.2,
                  17.5,
                  18.1,
                  18.4,
                  18.4,
                  18.6,
                  19,
                  19.7,
                  20.1,
                  20.5,
                  20.8,
                  20.9,
                  20.8,
                  21.2,
                  21.3,
                  21.5,
                  21.9,
                  21.6,
                  22.3,
                  22.2,
                  22.1,
                  21.7,
                  22.2,
                  22.6,
                  22.1,
                  22.9,
                  22.9
               ]
            ]
         }
      }

      // Create the configuration for the graph
      var config = {
         "graphType" : "Line",
         "theme" : "editorial",
         "title" : "Night temperatures lowered with AC and then bounced back",
         "colors" : [
            "#7f5349",
            "#bcbcbc"
         ],
         "colorScheme" : "User",
         "showLineEndLabels" : false,
         "showLegend" : true,
         "numberFormat" : {
            "style" : "decimal",
            "decimals" : 0,
            "suffix" : "°C"
         },
         "tooltipNumberFormat" : {
            "style" : "decimal",
            "decimals" : 1,
            "suffix" : "°C"
         },
         "smpLabelInterval" : 18,
         "yAxisTitle" : "",
         "smpTitle" : "",
         "notes" : "Room temperature measured by a local sensor.\nOutside temperature as recorded by German weather service.",
         "source" : "Deutscher Wetterdienst (DWD)",
         "byline" : "Chart: CanvasXpress",
         "showDataDownload" : true,
         "graphOrientation" : "vertical",
         "decorations" : {
            "range" : [
               {
                  "smp" : "9:10 pm",
                  "smp2" : "3 am​",
                  "color" : "rgba(115,200,229,0.2)",
                  "label" : ""
               }
            ],
            "marker" : [
               {
                  "text" : "AC switched on,\nroom cooled\ndown by 6 °C",
                  "variable" : "Room temperature (°C)",
                  "sample" : "9:20 pm",
                  "type" : "text",
                  "x" : 0.76,
                  "y" : 0.13,
                  "color" : "#0b4a60"
               },
               {
                  "text" : "The weather changed and made\noutside temperature drop",
                  "variable" : "Room temperature (°C)",
                  "sample" : "7:40 pm",
                  "type" : "curved",
                  "x" : 0.5,
                  "y" : 0.57,
                  "color" : "#6b7280",
                  "lineColor" : "#6b7280"
               }
            ]
         },
         "legendPosition" : "top",
         "titleFontStyle" : "bold",
         "legendTextScaleFontFactor" : 0.9,
         "xAxisTextScaleFontFactor" : 0.85,
         "yAxisTextScaleFontFactor" : 0.85,
         "citationScaleFontFactor" : 0.62,
         "smpTextRotate" : 90,
         "legendColumns" : 2
      }

      // Event used to create graph (optional)
      var events = false

            // Call the CanvasXpress function to create the graph
      var cX = new CanvasXpress("canvasId", data, config, events);

    </script>

  </body>

</html>
from canvasxpress.canvas import CanvasXpress
from canvasxpress.plot import show_in_browser

if __name__ == "__main__":
  # Define the chart with its data and configuration
  chart: CanvasXpress = CanvasXpress(
    render_to = "timeseries24",
    data = {
      "y": {
        "vars": ["Room temperature (°C)", "Outside temperature (°C)"],
        "smps": ["12 am\nJul 31", "12:10 am", "12:20 am", "12:30 am", "12:40 am", "12:50 am", "1 am", "1:10 am", "1:20 am", "1:30 am", "1:40 am", "1:50 am", "2 am", "2:10 am", "2:20 am", "2:30 am", "2:40 am", "2:50 am", "3 am", "3:10 am", "3:20 am", "3:30 am", "3:40 am", "3:50 am", "4 am", "4:10 am", "4:20 am", "4:30 am", "4:40 am", "4:50 am", "5 am", "5:10 am", "5:20 am", "5:30 am", "5:40 am", "5:50 am", "6 am", "6:10 am", "6:20 am", "6:30 am", "6:40 am", "6:50 am", "7 am", "7:10 am", "7:20 am", "7:30 am", "7:40 am", "7:50 am", "8 am", "8:10 am", "8:20 am", "8:30 am", "8:40 am", "8:50 am", "9 am", "9:10 am", "9:20 am", "9:30 am", "9:40 am", "9:50 am", "10 am", "10:10 am", "10:20 am", "10:30 am", "10:40 am", "10:50 am", "11 am", "11:10 am", "11:20 am", "11:30 am", "11:40 am", "11:50 am", "12 pm", "12:10 pm", "12:20 pm", "12:30 pm", "12:40 pm", "12:50 pm", "1 pm", "1:10 pm", "1:20 pm", "1:30 pm", "1:40 pm", "1:50 pm", "2 pm", "2:10 pm", "2:20 pm", "2:30 pm", "2:40 pm", "2:50 pm", "3 pm", "3:10 pm", "3:20 pm", "3:30 pm", "3:40 pm", "3:50 pm", "4 pm", "4:10 pm", "4:20 pm", "4:30 pm", "4:40 pm", "4:50 pm", "5 pm", "5:10 pm", "5:20 pm", "5:30 pm", "5:40 pm", "5:50 pm", "6 pm", "6:10 pm", "6:20 pm", "6:30 pm", "6:40 pm", "6:50 pm", "7 pm", "7:10 pm", "7:20 pm", "7:30 pm", "7:40 pm", "7:50 pm", "8 pm", "8:10 pm", "8:20 pm", "8:30 pm", "8:40 pm", "8:50 pm", "9 pm", "9:10 pm", "9:20 pm", "9:30 pm", "9:40 pm", "9:50 pm", "10 pm", "10:10 pm", "10:20 pm", "10:30 pm", "10:40 pm", "10:50 pm", "11 pm", "11:10 pm", "11:20 pm", "11:30 pm", "11:40 pm", "11:50 pm", "12 am​\nAug 1", "12:10 am​", "12:20 am​", "12:30 am​", "12:40 am​", "12:50 am​", "1 am​", "1:10 am​", "1:20 am​", "1:30 am​", "1:40 am​", "1:50 am​", "2 am​", "2:10 am​", "2:20 am​", "2:30 am​", "2:40 am​", "2:50 am​", "3 am​", "3:10 am​", "3:20 am​", "3:30 am​", "3:40 am​", "3:50 am​", "4 am​", "4:10 am​", "4:20 am​", "4:30 am​", "4:40 am​", "4:50 am​", "5 am​", "5:10 am​", "5:20 am​", "5:30 am​", "5:40 am​", "5:50 am​", "6 am​", "6:10 am​", "6:20 am​", "6:30 am​", "6:40 am​", "6:50 am​", "7 am​", "7:10 am​", "7:20 am​", "7:30 am​", "7:40 am​", "7:50 am​", "8 am​", "8:10 am​", "8:20 am​", "8:30 am​", "8:40 am​", "8:50 am​", "9 am​", "9:10 am​", "9:20 am​", "9:30 am​", "9:40 am​", "9:50 am​", "10 am​"],
        "data": [
          [26.8005641181853, 26.82433238371585, 26.853677303152107, 26.880984732781304, 26.888503829841206, 26.878461026996092, 26.905544437916156, 26.59823606671647, 26.615677472645434, 26.51110665604814, 26.425656046307864, 26.475958962203304, 26.578066395540237, 26.73883322875887, 26.858848384434474, 27.010837521879616, 27.08625976261235, 27.295904629420157, 27.50023244224358, 27.624835221850127, 27.6177061760231, 27.616814974821914, 27.706265309413663, 28.012777818767603, 28.083095661984526, 28.212356853072883, 28.482721167735708, 28.683708269231552, 28.850957018316514, 29.038797706382546, 29.219959766987635, 29.367228354067812, 29.52387924439596, 29.410254957607084, 29.455467425681025, 29.49053058532157, 29.51143731759842, 29.596965527953785, 29.811104341019636, 29.787085964549664, 29.940482204605008, 29.926298129723012, 29.909060358569217, 29.971866734836063, 30.00432185594628, 30.097326645596883, 30.12869972259013, 30.252242137823004, 30.240846242374722, 30.19325938687789, 30.213266965775063, 30.587313711530896, 30.722943463023523, 30.822954237562072, 30.95977671488796, 31.009652153103325, 30.95429736035727, 30.90661502253222, 31.1033404789072, 31.158541519364167, 31.31395649398479, 31.24397912283586, 31.166097113697766, 31.158138973249162, 31.12298692593067, 31.15227218149447, 31.258551145637256, 31.289040743347385, 31.1938430454011, 31.108566287008415, 31.07243125654943, 31.05646476645499, 31.13381926421878, 31.2206358895408, 31.148027991951494, 31.057884304821755, 30.987379442101535, 30.93851946100982, 30.876502137382907, 30.889508704165657, 30.804275410512492, 30.822655166710824, 30.822438047279086, 30.74238147560784, 30.624053488509567, 30.522373107516216, 30.475503555289485, 30.39803410062502, 30.336342886662475, 30.270830084035055, 30.219255731754025, 30.167236897399516, 30.092878930427286, 29.346647841148418, 28.422893423070576, 28.322660943483157, 27.955854032084197, 27.419549750181837, 27.652174096371056, 27.424142938484902, 27.593531577509662, 27.61342807862082, 27.04424691083746, 26.6623531874533, 26.868330774081706, 26.565036709935793, 26.352914541502024, 26.52292390868815, 26.750140064316053, 26.500803361783927, 25.84679299438833, 25.660561608007793, 25.587602596242345, 25.393209696459635, 25.04929402451078, 25.151873203804776, 25.197695703154867, 25.0163852039858, 24.87127856892476, 24.867291262297183, 24.59223835257142, 24.458600047818937, 24.542309389710397, 24.60788340437925, 24.552374021300487, 24.522585278151023, 24.621786759206834, 25.041646738415277, 25.443814946007983, 25.88537777316777, 26.059122435532053, 26.23553363282922, 26.358098025992824, 26.439766335173044, 26.48587183887229, 26.57553694771308, 26.609290112425306, 26.621030921314958, 26.61383727543255, 26.66207541720154, 26.72034392015283, 26.81165983604287, 26.811902301996877, 26.855894422742317, 26.914202720351472, 26.895324586965586, 26.87854705681113, 26.94299511216081, 26.91677788321215, 26.90282576817388, 26.87181962862747, 26.87779890122161, 26.948902025143223, 26.96394476147355, 26.87616541390896, 26.877928552712763, 26.925217862296716, 26.954127165632958, 26.857449100334055, 26.835963712296632, 26.880508144544997, 26.80815416723808, 26.873250198159006, 26.924580510403736, 26.888191033980085, 26.96239101021788, 27.017536814883908, 26.968926826363695, 26.960725824948412, 26.938409427247915, 26.865203649619154, 26.839311414483735, 26.797368497451487, 26.728943512670675, 26.727570278251584, 26.713554076617044, 26.67058888307821, 26.63136778699923, 26.691135649322963, 26.840693129127374, 26.344571983127377, 25.776393620613323, 25.280402447056368, 25.47644353630227, 25.828235545350026, 25.994042641275435, 25.807090985298288, 25.809334916638456, 26.173443853649285, 26.157705531138937, 26.32515585432937, 26.3406894692322, 26.366590265744584, 26.428874344278164, 26.63153342122131, 26.313133986276377, 26.211929976946873, 26.37390238758968, 26.729364566413988, 26.51745477614072, 27.057853623078323, 27.323993271260655, 27.4248694792646, 27.736477373273402, 28.092663015387398],
          [16.1, 16.3, 16.5, 16.9, 17.3, 17.7, 18, 18.3, 18.7, 18.8, 19, 19, 19.4, 19.8, 20, 20.2, 20.8, 21.3, 21.3, 21.6, 21.4, 21.4, 21.7, 22, 22.5, 22, 23, 23.5, 23.1, 24.1, 23.4, 24.2, 23.9, 24, 25, 24.9, 25.3, 25.6, 25.9, 26.8, 26.3, 26.5, 26.2, 26.5, 26.8, 26.7, 27.5, 27.3, 27.3, 27.4, 27.6, 28.5, 28.2, 28.2, 28.1, 28.3, 28.7, 29.2, 29.8, 29.4, 29.5, 29.6, 29.2, 29.2, 29.4, 29.9, 29.9, 29.8, 29.6, 29.3, 29.4, 29.5, 30.3, 30.1, 29.5, 29.6, 29.8, 29.4, 29.5, 29.4, 28.9, 29, 29, 27.2, 23.3, 19.6, 19.9, 19.6, 20.3, 20.3, 20.1, 20, 20.1, 20, 20.1, 20.4, 20.4, 20.3, 20.4, 20.3, 20.1, 20.4, 20.2, 20.1, 20, 19.9, 19.7, 19.7, 19.8, 19.7, 19.8, 19.5, 19.3, 19.6, 19.8, 19.9, 19.8, 19.7, 19.9, 19.9, 19.9, 19.9, 20, 19.9, 19.6, 19.6, 19.7, 19.7, 19.6, 19.5, 19.6, 19.5, 19.4, 19.4, 19, 19, 19, 19.1, 19.1, 19.1, 19, 19, 19.1, 19.1, 18.9, 18.7, 18.5, 18.4, 18.3, 18.2, 18.1, 18.1, 18.1, 18.1, 17.9, 17.7, 17.5, 17, 17, 17, 17, 16.9, 16.9, 16.9, 16.9, 17, 17.1, 17.1, 17, 17.1, 17.1, 17.1, 17.1, 17, 17, 17.1, 17.1, 17.1, 17.2, 17.5, 18.1, 18.4, 18.4, 18.6, 19, 19.7, 20.1, 20.5, 20.8, 20.9, 20.8, 21.2, 21.3, 21.5, 21.9, 21.6, 22.3, 22.2, 22.1, 21.7, 22.2, 22.6, 22.1, 22.9, 22.9]
        ]
      }
    },
    config = {
      "graphType": "Line",
      "theme": "editorial",
      "title": "Night temperatures lowered with AC and then bounced back",
      "colors": ["#7f5349", "#bcbcbc"],
      "colorScheme": "User",
      "showLineEndLabels": False,
      "showLegend": True,
      "numberFormat": {
        "style": "decimal",
        "decimals": 0,
        "suffix": "°C"
      },
      "tooltipNumberFormat": {
        "style": "decimal",
        "decimals": 1,
        "suffix": "°C"
      },
      "smpLabelInterval": 18,
      "yAxisTitle": "",
      "smpTitle": "",
      "notes": "Room temperature measured by a local sensor.\nOutside temperature as recorded by German weather service.",
      "source": "Deutscher Wetterdienst (DWD)",
      "byline": "Chart: CanvasXpress",
      "showDataDownload": True,
      "graphOrientation": "vertical",
      "decorations": {
        "range": [
          {
            "smp": "9:10 pm",
            "smp2": "3 am​",
            "color": "rgba(115,200,229,0.2)",
            "label": ""
          }
        ],
        "marker": [
          {
            "text": "AC switched on,\nroom cooled\ndown by 6 °C",
            "variable": "Room temperature (°C)",
            "sample": "9:20 pm",
            "type": "text",
            "x": 0.76,
            "y": 0.13,
            "color": "#0b4a60"
          },
          {
            "text": "The weather changed and made\noutside temperature drop",
            "variable": "Room temperature (°C)",
            "sample": "7:40 pm",
            "type": "curved",
            "x": 0.5,
            "y": 0.57,
            "color": "#6b7280",
            "lineColor": "#6b7280"
          }
        ]
      },
      "legendPosition": "top",
      "titleFontStyle": "bold",
      "legendTextScaleFontFactor": 0.9,
      "xAxisTextScaleFontFactor": 0.85,
      "yAxisTextScaleFontFactor": 0.85,
      "citationScaleFontFactor": 0.62,
      "smpTextRotate": 90,
      "legendColumns": 2
    },
    width = 760,
    height = 560
  )

  # Display the chart in its own Web page
  show_in_browser(chart)
Run this notebook: Open in Binder
from canvasxpress.canvas import CanvasXpress
from canvasxpress.plot import graph

graph(
  CanvasXpress(
    render_to = "timeseries24",
    data = {
      "y": {
        "vars": ["Room temperature (°C)", "Outside temperature (°C)"],
        "smps": ["12 am\nJul 31", "12:10 am", "12:20 am", "12:30 am", "12:40 am", "12:50 am", "1 am", "1:10 am", "1:20 am", "1:30 am", "1:40 am", "1:50 am", "2 am", "2:10 am", "2:20 am", "2:30 am", "2:40 am", "2:50 am", "3 am", "3:10 am", "3:20 am", "3:30 am", "3:40 am", "3:50 am", "4 am", "4:10 am", "4:20 am", "4:30 am", "4:40 am", "4:50 am", "5 am", "5:10 am", "5:20 am", "5:30 am", "5:40 am", "5:50 am", "6 am", "6:10 am", "6:20 am", "6:30 am", "6:40 am", "6:50 am", "7 am", "7:10 am", "7:20 am", "7:30 am", "7:40 am", "7:50 am", "8 am", "8:10 am", "8:20 am", "8:30 am", "8:40 am", "8:50 am", "9 am", "9:10 am", "9:20 am", "9:30 am", "9:40 am", "9:50 am", "10 am", "10:10 am", "10:20 am", "10:30 am", "10:40 am", "10:50 am", "11 am", "11:10 am", "11:20 am", "11:30 am", "11:40 am", "11:50 am", "12 pm", "12:10 pm", "12:20 pm", "12:30 pm", "12:40 pm", "12:50 pm", "1 pm", "1:10 pm", "1:20 pm", "1:30 pm", "1:40 pm", "1:50 pm", "2 pm", "2:10 pm", "2:20 pm", "2:30 pm", "2:40 pm", "2:50 pm", "3 pm", "3:10 pm", "3:20 pm", "3:30 pm", "3:40 pm", "3:50 pm", "4 pm", "4:10 pm", "4:20 pm", "4:30 pm", "4:40 pm", "4:50 pm", "5 pm", "5:10 pm", "5:20 pm", "5:30 pm", "5:40 pm", "5:50 pm", "6 pm", "6:10 pm", "6:20 pm", "6:30 pm", "6:40 pm", "6:50 pm", "7 pm", "7:10 pm", "7:20 pm", "7:30 pm", "7:40 pm", "7:50 pm", "8 pm", "8:10 pm", "8:20 pm", "8:30 pm", "8:40 pm", "8:50 pm", "9 pm", "9:10 pm", "9:20 pm", "9:30 pm", "9:40 pm", "9:50 pm", "10 pm", "10:10 pm", "10:20 pm", "10:30 pm", "10:40 pm", "10:50 pm", "11 pm", "11:10 pm", "11:20 pm", "11:30 pm", "11:40 pm", "11:50 pm", "12 am​\nAug 1", "12:10 am​", "12:20 am​", "12:30 am​", "12:40 am​", "12:50 am​", "1 am​", "1:10 am​", "1:20 am​", "1:30 am​", "1:40 am​", "1:50 am​", "2 am​", "2:10 am​", "2:20 am​", "2:30 am​", "2:40 am​", "2:50 am​", "3 am​", "3:10 am​", "3:20 am​", "3:30 am​", "3:40 am​", "3:50 am​", "4 am​", "4:10 am​", "4:20 am​", "4:30 am​", "4:40 am​", "4:50 am​", "5 am​", "5:10 am​", "5:20 am​", "5:30 am​", "5:40 am​", "5:50 am​", "6 am​", "6:10 am​", "6:20 am​", "6:30 am​", "6:40 am​", "6:50 am​", "7 am​", "7:10 am​", "7:20 am​", "7:30 am​", "7:40 am​", "7:50 am​", "8 am​", "8:10 am​", "8:20 am​", "8:30 am​", "8:40 am​", "8:50 am​", "9 am​", "9:10 am​", "9:20 am​", "9:30 am​", "9:40 am​", "9:50 am​", "10 am​"],
        "data": [
          [26.8005641181853, 26.82433238371585, 26.853677303152107, 26.880984732781304, 26.888503829841206, 26.878461026996092, 26.905544437916156, 26.59823606671647, 26.615677472645434, 26.51110665604814, 26.425656046307864, 26.475958962203304, 26.578066395540237, 26.73883322875887, 26.858848384434474, 27.010837521879616, 27.08625976261235, 27.295904629420157, 27.50023244224358, 27.624835221850127, 27.6177061760231, 27.616814974821914, 27.706265309413663, 28.012777818767603, 28.083095661984526, 28.212356853072883, 28.482721167735708, 28.683708269231552, 28.850957018316514, 29.038797706382546, 29.219959766987635, 29.367228354067812, 29.52387924439596, 29.410254957607084, 29.455467425681025, 29.49053058532157, 29.51143731759842, 29.596965527953785, 29.811104341019636, 29.787085964549664, 29.940482204605008, 29.926298129723012, 29.909060358569217, 29.971866734836063, 30.00432185594628, 30.097326645596883, 30.12869972259013, 30.252242137823004, 30.240846242374722, 30.19325938687789, 30.213266965775063, 30.587313711530896, 30.722943463023523, 30.822954237562072, 30.95977671488796, 31.009652153103325, 30.95429736035727, 30.90661502253222, 31.1033404789072, 31.158541519364167, 31.31395649398479, 31.24397912283586, 31.166097113697766, 31.158138973249162, 31.12298692593067, 31.15227218149447, 31.258551145637256, 31.289040743347385, 31.1938430454011, 31.108566287008415, 31.07243125654943, 31.05646476645499, 31.13381926421878, 31.2206358895408, 31.148027991951494, 31.057884304821755, 30.987379442101535, 30.93851946100982, 30.876502137382907, 30.889508704165657, 30.804275410512492, 30.822655166710824, 30.822438047279086, 30.74238147560784, 30.624053488509567, 30.522373107516216, 30.475503555289485, 30.39803410062502, 30.336342886662475, 30.270830084035055, 30.219255731754025, 30.167236897399516, 30.092878930427286, 29.346647841148418, 28.422893423070576, 28.322660943483157, 27.955854032084197, 27.419549750181837, 27.652174096371056, 27.424142938484902, 27.593531577509662, 27.61342807862082, 27.04424691083746, 26.6623531874533, 26.868330774081706, 26.565036709935793, 26.352914541502024, 26.52292390868815, 26.750140064316053, 26.500803361783927, 25.84679299438833, 25.660561608007793, 25.587602596242345, 25.393209696459635, 25.04929402451078, 25.151873203804776, 25.197695703154867, 25.0163852039858, 24.87127856892476, 24.867291262297183, 24.59223835257142, 24.458600047818937, 24.542309389710397, 24.60788340437925, 24.552374021300487, 24.522585278151023, 24.621786759206834, 25.041646738415277, 25.443814946007983, 25.88537777316777, 26.059122435532053, 26.23553363282922, 26.358098025992824, 26.439766335173044, 26.48587183887229, 26.57553694771308, 26.609290112425306, 26.621030921314958, 26.61383727543255, 26.66207541720154, 26.72034392015283, 26.81165983604287, 26.811902301996877, 26.855894422742317, 26.914202720351472, 26.895324586965586, 26.87854705681113, 26.94299511216081, 26.91677788321215, 26.90282576817388, 26.87181962862747, 26.87779890122161, 26.948902025143223, 26.96394476147355, 26.87616541390896, 26.877928552712763, 26.925217862296716, 26.954127165632958, 26.857449100334055, 26.835963712296632, 26.880508144544997, 26.80815416723808, 26.873250198159006, 26.924580510403736, 26.888191033980085, 26.96239101021788, 27.017536814883908, 26.968926826363695, 26.960725824948412, 26.938409427247915, 26.865203649619154, 26.839311414483735, 26.797368497451487, 26.728943512670675, 26.727570278251584, 26.713554076617044, 26.67058888307821, 26.63136778699923, 26.691135649322963, 26.840693129127374, 26.344571983127377, 25.776393620613323, 25.280402447056368, 25.47644353630227, 25.828235545350026, 25.994042641275435, 25.807090985298288, 25.809334916638456, 26.173443853649285, 26.157705531138937, 26.32515585432937, 26.3406894692322, 26.366590265744584, 26.428874344278164, 26.63153342122131, 26.313133986276377, 26.211929976946873, 26.37390238758968, 26.729364566413988, 26.51745477614072, 27.057853623078323, 27.323993271260655, 27.4248694792646, 27.736477373273402, 28.092663015387398],
          [16.1, 16.3, 16.5, 16.9, 17.3, 17.7, 18, 18.3, 18.7, 18.8, 19, 19, 19.4, 19.8, 20, 20.2, 20.8, 21.3, 21.3, 21.6, 21.4, 21.4, 21.7, 22, 22.5, 22, 23, 23.5, 23.1, 24.1, 23.4, 24.2, 23.9, 24, 25, 24.9, 25.3, 25.6, 25.9, 26.8, 26.3, 26.5, 26.2, 26.5, 26.8, 26.7, 27.5, 27.3, 27.3, 27.4, 27.6, 28.5, 28.2, 28.2, 28.1, 28.3, 28.7, 29.2, 29.8, 29.4, 29.5, 29.6, 29.2, 29.2, 29.4, 29.9, 29.9, 29.8, 29.6, 29.3, 29.4, 29.5, 30.3, 30.1, 29.5, 29.6, 29.8, 29.4, 29.5, 29.4, 28.9, 29, 29, 27.2, 23.3, 19.6, 19.9, 19.6, 20.3, 20.3, 20.1, 20, 20.1, 20, 20.1, 20.4, 20.4, 20.3, 20.4, 20.3, 20.1, 20.4, 20.2, 20.1, 20, 19.9, 19.7, 19.7, 19.8, 19.7, 19.8, 19.5, 19.3, 19.6, 19.8, 19.9, 19.8, 19.7, 19.9, 19.9, 19.9, 19.9, 20, 19.9, 19.6, 19.6, 19.7, 19.7, 19.6, 19.5, 19.6, 19.5, 19.4, 19.4, 19, 19, 19, 19.1, 19.1, 19.1, 19, 19, 19.1, 19.1, 18.9, 18.7, 18.5, 18.4, 18.3, 18.2, 18.1, 18.1, 18.1, 18.1, 17.9, 17.7, 17.5, 17, 17, 17, 17, 16.9, 16.9, 16.9, 16.9, 17, 17.1, 17.1, 17, 17.1, 17.1, 17.1, 17.1, 17, 17, 17.1, 17.1, 17.1, 17.2, 17.5, 18.1, 18.4, 18.4, 18.6, 19, 19.7, 20.1, 20.5, 20.8, 20.9, 20.8, 21.2, 21.3, 21.5, 21.9, 21.6, 22.3, 22.2, 22.1, 21.7, 22.2, 22.6, 22.1, 22.9, 22.9]
        ]
      }
    },
    config = {
      "graphType": "Line",
      "theme": "editorial",
      "title": "Night temperatures lowered with AC and then bounced back",
      "colors": ["#7f5349", "#bcbcbc"],
      "colorScheme": "User",
      "showLineEndLabels": False,
      "showLegend": True,
      "numberFormat": {
        "style": "decimal",
        "decimals": 0,
        "suffix": "°C"
      },
      "tooltipNumberFormat": {
        "style": "decimal",
        "decimals": 1,
        "suffix": "°C"
      },
      "smpLabelInterval": 18,
      "yAxisTitle": "",
      "smpTitle": "",
      "notes": "Room temperature measured by a local sensor.\nOutside temperature as recorded by German weather service.",
      "source": "Deutscher Wetterdienst (DWD)",
      "byline": "Chart: CanvasXpress",
      "showDataDownload": True,
      "graphOrientation": "vertical",
      "decorations": {
        "range": [
          {
            "smp": "9:10 pm",
            "smp2": "3 am​",
            "color": "rgba(115,200,229,0.2)",
            "label": ""
          }
        ],
        "marker": [
          {
            "text": "AC switched on,\nroom cooled\ndown by 6 °C",
            "variable": "Room temperature (°C)",
            "sample": "9:20 pm",
            "type": "text",
            "x": 0.76,
            "y": 0.13,
            "color": "#0b4a60"
          },
          {
            "text": "The weather changed and made\noutside temperature drop",
            "variable": "Room temperature (°C)",
            "sample": "7:40 pm",
            "type": "curved",
            "x": 0.5,
            "y": 0.57,
            "color": "#6b7280",
            "lineColor": "#6b7280"
          }
        ]
      },
      "legendPosition": "top",
      "titleFontStyle": "bold",
      "legendTextScaleFontFactor": 0.9,
      "xAxisTextScaleFontFactor": 0.85,
      "yAxisTextScaleFontFactor": 0.85,
      "citationScaleFontFactor": 0.62,
      "smpTextRotate": 90,
      "legendColumns": 2
    },
    width = 760,
    height = 560
  )
)
using CanvasXpress

canvasxpress(Dict(
  "y" => Dict(
    "vars" => ["Room temperature (°C)", "Outside temperature (°C)"],
    "smps" => ["12 am\nJul 31", "12:10 am", "12:20 am", "12:30 am", "12:40 am", "12:50 am", "1 am", "1:10 am", "1:20 am", "1:30 am", "1:40 am", "1:50 am", "2 am", "2:10 am", "2:20 am", "2:30 am", "2:40 am", "2:50 am", "3 am", "3:10 am", "3:20 am", "3:30 am", "3:40 am", "3:50 am", "4 am", "4:10 am", "4:20 am", "4:30 am", "4:40 am", "4:50 am", "5 am", "5:10 am", "5:20 am", "5:30 am", "5:40 am", "5:50 am", "6 am", "6:10 am", "6:20 am", "6:30 am", "6:40 am", "6:50 am", "7 am", "7:10 am", "7:20 am", "7:30 am", "7:40 am", "7:50 am", "8 am", "8:10 am", "8:20 am", "8:30 am", "8:40 am", "8:50 am", "9 am", "9:10 am", "9:20 am", "9:30 am", "9:40 am", "9:50 am", "10 am", "10:10 am", "10:20 am", "10:30 am", "10:40 am", "10:50 am", "11 am", "11:10 am", "11:20 am", "11:30 am", "11:40 am", "11:50 am", "12 pm", "12:10 pm", "12:20 pm", "12:30 pm", "12:40 pm", "12:50 pm", "1 pm", "1:10 pm", "1:20 pm", "1:30 pm", "1:40 pm", "1:50 pm", "2 pm", "2:10 pm", "2:20 pm", "2:30 pm", "2:40 pm", "2:50 pm", "3 pm", "3:10 pm", "3:20 pm", "3:30 pm", "3:40 pm", "3:50 pm", "4 pm", "4:10 pm", "4:20 pm", "4:30 pm", "4:40 pm", "4:50 pm", "5 pm", "5:10 pm", "5:20 pm", "5:30 pm", "5:40 pm", "5:50 pm", "6 pm", "6:10 pm", "6:20 pm", "6:30 pm", "6:40 pm", "6:50 pm", "7 pm", "7:10 pm", "7:20 pm", "7:30 pm", "7:40 pm", "7:50 pm", "8 pm", "8:10 pm", "8:20 pm", "8:30 pm", "8:40 pm", "8:50 pm", "9 pm", "9:10 pm", "9:20 pm", "9:30 pm", "9:40 pm", "9:50 pm", "10 pm", "10:10 pm", "10:20 pm", "10:30 pm", "10:40 pm", "10:50 pm", "11 pm", "11:10 pm", "11:20 pm", "11:30 pm", "11:40 pm", "11:50 pm", "12 am​\nAug 1", "12:10 am​", "12:20 am​", "12:30 am​", "12:40 am​", "12:50 am​", "1 am​", "1:10 am​", "1:20 am​", "1:30 am​", "1:40 am​", "1:50 am​", "2 am​", "2:10 am​", "2:20 am​", "2:30 am​", "2:40 am​", "2:50 am​", "3 am​", "3:10 am​", "3:20 am​", "3:30 am​", "3:40 am​", "3:50 am​", "4 am​", "4:10 am​", "4:20 am​", "4:30 am​", "4:40 am​", "4:50 am​", "5 am​", "5:10 am​", "5:20 am​", "5:30 am​", "5:40 am​", "5:50 am​", "6 am​", "6:10 am​", "6:20 am​", "6:30 am​", "6:40 am​", "6:50 am​", "7 am​", "7:10 am​", "7:20 am​", "7:30 am​", "7:40 am​", "7:50 am​", "8 am​", "8:10 am​", "8:20 am​", "8:30 am​", "8:40 am​", "8:50 am​", "9 am​", "9:10 am​", "9:20 am​", "9:30 am​", "9:40 am​", "9:50 am​", "10 am​"],
    "data" => [
      [26.8005641181853, 26.82433238371585, 26.853677303152107, 26.880984732781304, 26.888503829841206, 26.878461026996092, 26.905544437916156, 26.59823606671647, 26.615677472645434, 26.51110665604814, 26.425656046307864, 26.475958962203304, 26.578066395540237, 26.73883322875887, 26.858848384434474, 27.010837521879616, 27.08625976261235, 27.295904629420157, 27.50023244224358, 27.624835221850127, 27.6177061760231, 27.616814974821914, 27.706265309413663, 28.012777818767603, 28.083095661984526, 28.212356853072883, 28.482721167735708, 28.683708269231552, 28.850957018316514, 29.038797706382546, 29.219959766987635, 29.367228354067812, 29.52387924439596, 29.410254957607084, 29.455467425681025, 29.49053058532157, 29.51143731759842, 29.596965527953785, 29.811104341019636, 29.787085964549664, 29.940482204605008, 29.926298129723012, 29.909060358569217, 29.971866734836063, 30.00432185594628, 30.097326645596883, 30.12869972259013, 30.252242137823004, 30.240846242374722, 30.19325938687789, 30.213266965775063, 30.587313711530896, 30.722943463023523, 30.822954237562072, 30.95977671488796, 31.009652153103325, 30.95429736035727, 30.90661502253222, 31.1033404789072, 31.158541519364167, 31.31395649398479, 31.24397912283586, 31.166097113697766, 31.158138973249162, 31.12298692593067, 31.15227218149447, 31.258551145637256, 31.289040743347385, 31.1938430454011, 31.108566287008415, 31.07243125654943, 31.05646476645499, 31.13381926421878, 31.2206358895408, 31.148027991951494, 31.057884304821755, 30.987379442101535, 30.93851946100982, 30.876502137382907, 30.889508704165657, 30.804275410512492, 30.822655166710824, 30.822438047279086, 30.74238147560784, 30.624053488509567, 30.522373107516216, 30.475503555289485, 30.39803410062502, 30.336342886662475, 30.270830084035055, 30.219255731754025, 30.167236897399516, 30.092878930427286, 29.346647841148418, 28.422893423070576, 28.322660943483157, 27.955854032084197, 27.419549750181837, 27.652174096371056, 27.424142938484902, 27.593531577509662, 27.61342807862082, 27.04424691083746, 26.6623531874533, 26.868330774081706, 26.565036709935793, 26.352914541502024, 26.52292390868815, 26.750140064316053, 26.500803361783927, 25.84679299438833, 25.660561608007793, 25.587602596242345, 25.393209696459635, 25.04929402451078, 25.151873203804776, 25.197695703154867, 25.0163852039858, 24.87127856892476, 24.867291262297183, 24.59223835257142, 24.458600047818937, 24.542309389710397, 24.60788340437925, 24.552374021300487, 24.522585278151023, 24.621786759206834, 25.041646738415277, 25.443814946007983, 25.88537777316777, 26.059122435532053, 26.23553363282922, 26.358098025992824, 26.439766335173044, 26.48587183887229, 26.57553694771308, 26.609290112425306, 26.621030921314958, 26.61383727543255, 26.66207541720154, 26.72034392015283, 26.81165983604287, 26.811902301996877, 26.855894422742317, 26.914202720351472, 26.895324586965586, 26.87854705681113, 26.94299511216081, 26.91677788321215, 26.90282576817388, 26.87181962862747, 26.87779890122161, 26.948902025143223, 26.96394476147355, 26.87616541390896, 26.877928552712763, 26.925217862296716, 26.954127165632958, 26.857449100334055, 26.835963712296632, 26.880508144544997, 26.80815416723808, 26.873250198159006, 26.924580510403736, 26.888191033980085, 26.96239101021788, 27.017536814883908, 26.968926826363695, 26.960725824948412, 26.938409427247915, 26.865203649619154, 26.839311414483735, 26.797368497451487, 26.728943512670675, 26.727570278251584, 26.713554076617044, 26.67058888307821, 26.63136778699923, 26.691135649322963, 26.840693129127374, 26.344571983127377, 25.776393620613323, 25.280402447056368, 25.47644353630227, 25.828235545350026, 25.994042641275435, 25.807090985298288, 25.809334916638456, 26.173443853649285, 26.157705531138937, 26.32515585432937, 26.3406894692322, 26.366590265744584, 26.428874344278164, 26.63153342122131, 26.313133986276377, 26.211929976946873, 26.37390238758968, 26.729364566413988, 26.51745477614072, 27.057853623078323, 27.323993271260655, 27.4248694792646, 27.736477373273402, 28.092663015387398],
      [16.1, 16.3, 16.5, 16.9, 17.3, 17.7, 18, 18.3, 18.7, 18.8, 19, 19, 19.4, 19.8, 20, 20.2, 20.8, 21.3, 21.3, 21.6, 21.4, 21.4, 21.7, 22, 22.5, 22, 23, 23.5, 23.1, 24.1, 23.4, 24.2, 23.9, 24, 25, 24.9, 25.3, 25.6, 25.9, 26.8, 26.3, 26.5, 26.2, 26.5, 26.8, 26.7, 27.5, 27.3, 27.3, 27.4, 27.6, 28.5, 28.2, 28.2, 28.1, 28.3, 28.7, 29.2, 29.8, 29.4, 29.5, 29.6, 29.2, 29.2, 29.4, 29.9, 29.9, 29.8, 29.6, 29.3, 29.4, 29.5, 30.3, 30.1, 29.5, 29.6, 29.8, 29.4, 29.5, 29.4, 28.9, 29, 29, 27.2, 23.3, 19.6, 19.9, 19.6, 20.3, 20.3, 20.1, 20, 20.1, 20, 20.1, 20.4, 20.4, 20.3, 20.4, 20.3, 20.1, 20.4, 20.2, 20.1, 20, 19.9, 19.7, 19.7, 19.8, 19.7, 19.8, 19.5, 19.3, 19.6, 19.8, 19.9, 19.8, 19.7, 19.9, 19.9, 19.9, 19.9, 20, 19.9, 19.6, 19.6, 19.7, 19.7, 19.6, 19.5, 19.6, 19.5, 19.4, 19.4, 19, 19, 19, 19.1, 19.1, 19.1, 19, 19, 19.1, 19.1, 18.9, 18.7, 18.5, 18.4, 18.3, 18.2, 18.1, 18.1, 18.1, 18.1, 17.9, 17.7, 17.5, 17, 17, 17, 17, 16.9, 16.9, 16.9, 16.9, 17, 17.1, 17.1, 17, 17.1, 17.1, 17.1, 17.1, 17, 17, 17.1, 17.1, 17.1, 17.2, 17.5, 18.1, 18.4, 18.4, 18.6, 19, 19.7, 20.1, 20.5, 20.8, 20.9, 20.8, 21.2, 21.3, 21.5, 21.9, 21.6, 22.3, 22.2, 22.1, 21.7, 22.2, 22.6, 22.1, 22.9, 22.9]
    ]
  )
);
  graphType = "Line",
  theme = "editorial",
  title = "Night temperatures lowered with AC and then bounced back",
  colors = ["#7f5349", "#bcbcbc"],
  colorScheme = "User",
  showLineEndLabels = false,
  showLegend = true,
  numberFormat = Dict(
    "style" => "decimal",
    "decimals" => 0,
    "suffix" => "°C"
  ),
  tooltipNumberFormat = Dict(
    "style" => "decimal",
    "decimals" => 1,
    "suffix" => "°C"
  ),
  smpLabelInterval = 18,
  yAxisTitle = "",
  smpTitle = "",
  notes = "Room temperature measured by a local sensor.\nOutside temperature as recorded by German weather service.",
  source = "Deutscher Wetterdienst (DWD)",
  byline = "Chart: CanvasXpress",
  showDataDownload = true,
  graphOrientation = "vertical",
  decorations = Dict(
    "range" => [
      Dict(
        "smp" => "9:10 pm",
        "smp2" => "3 am​",
        "color" => "rgba(115,200,229,0.2)",
        "label" => ""
      )
    ],
    "marker" => [
      Dict(
        "text" => "AC switched on,\nroom cooled\ndown by 6 °C",
        "variable" => "Room temperature (°C)",
        "sample" => "9:20 pm",
        "type" => "text",
        "x" => 0.76,
        "y" => 0.13,
        "color" => "#0b4a60"
      ),
      Dict(
        "text" => "The weather changed and made\noutside temperature drop",
        "variable" => "Room temperature (°C)",
        "sample" => "7:40 pm",
        "type" => "curved",
        "x" => 0.5,
        "y" => 0.57,
        "color" => "#6b7280",
        "lineColor" => "#6b7280"
      )
    ]
  ),
  legendPosition = "top",
  titleFontStyle = "bold",
  legendTextScaleFontFactor = 0.9,
  xAxisTextScaleFontFactor = 0.85,
  yAxisTextScaleFontFactor = 0.85,
  citationScaleFontFactor = 0.62,
  smpTextRotate = 90,
  legendColumns = 2
)
⇧