{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Multigraph tutorial\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### The Canvas\n", "To begin with, we must create a canvas on which to put our multigraph (which we will create using the class TMultiGraph)." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "TCanvas c1(\"c1\",\"multigraph\",700,500);\n", "c1.SetGrid();\n", "TMultiGraph mg(\"mg\",\"mg\");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Graph 1\n", "We then create our first graph." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [], "source": [ "std::vector px1 {-0.1, 0.05, 0.25, 0.35, 0.5, 0.61,0.7,0.85,0.89,0.95};\n", "std::vector py1 {-1,2.9,5.6,7.4,9,9.6,8.7,6.3,4.5,1};\n", "std::vector ex1 {.05,.1,.07,.07,.04,.05,.06,.07,.08,.05};\n", "std::vector ey1 {.8,.7,.6,.5,.4,.4,.5,.6,.7,.8};\n", "const Int_t n1 = px1.size();\n", "TGraphErrors gr1(n1,px1.data(),py1.data(),ex1.data(),ey1.data());\n", "gr1.SetMarkerColor(kBlue);\n", "gr1.SetMarkerStyle(21);\n", "mg.Add(&gr1);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Graph 2\n", "We then create our second one." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "std::vector x2 {-0.28, 0.005, 0.19, 0.29, 0.45, 0.56,0.65,0.80,0.90,1.01};\n", "std::vector y2 {2.1,3.86,7,9,10,10.55,9.64,7.26,5.42,2};\n", "std::vector ex2 {.04,.12,.08,.06,.05,.04,.07,.06,.08,.04};\n", "std::vector ey2 {.6,.8,.7,.4,.3,.3,.4,.5,.6,.7};\n", "const Int_t n2 = x2.size();\n", "TGraphErrors gr2(n2,x2.data(),y2.data(),ex2.data(),ey2.data());\n", "gr2.SetMarkerColor(kRed);\n", "gr2.SetMarkerStyle(20);\n", "mg.Add(&gr2);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### End Product\n", "We add the two graphs onto our canvas, and update it." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [], "source": [ "mg.Draw(\"APL\");\n", "mg.GetXaxis()->SetTitle(\"X values\");\n", "mg.GetYaxis()->SetTitle(\"Y values\");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We finally display the canvas." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", "
\n", "
\n", "\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%jsroot on\n", "c1.Draw()" ] } ], "metadata": { "kernelspec": { "display_name": "ROOT C++", "language": "c++", "name": "root" }, "language_info": { "codemirror_mode": "text/x-c++src", "file_extension": ".C", "mimetype": " text/x-c++src", "name": "c++" } }, "nbformat": 4, "nbformat_minor": 0 }