ROOT Version: 5.34/10
Platform: Ubuntu 18.04 LTS
Compiler: Not Provided
Is there a way to save all graphs as PNG files by inputting a root file?
My code creates around 100 histograms, and I was able to create PNG files for all of them. However, I run the code 257 times, with different input files (TFile infile(“job_0.root”), TFile infile(“job_2.root”), … ,TFile infile(“job_256.root”)). To combine all the root files from the different input files, I use the command “hadd combinedrootfiles.root /*.root” which combines all the root files into one root file, which superimposes all the graphs.
However, I cannot create PNG files from the combinedrootfile.root that I created. Is there a way to save all 100 graphs from this combinedrootfile.root to PNG files?
Before, I was screenshotting all 100 graphs, twice for different data sets, and it was becoming very annoying and time-consuming.
Thank you very much and I really appreciate any help,
May be the command line tool
footprint can help you.
$ rootprint --help
usage: rootprint [-h] [-d DIRECTORY] [--divide DIVIDE] [-D DRAW] [-f FORMAT]
[-o OUTPUT] [-s SIZE] [-S STYLE] [-v]
FILE [FILE ...]
Print ROOT files contents on ps,pdf or pictures files
FILE Input file
-h, --help show this help message and exit
-d DIRECTORY, --directory DIRECTORY
put output files in a subdirectory named DIRECTORY.
--divide DIVIDE divide the canvas ont the format 'x','y' (ex: 2,2)
-D DRAW, --draw DRAW specify draw option
-f FORMAT, --format FORMAT
specify output format (ex: pdf, png).
-o OUTPUT, --output OUTPUT
merge files in a file named OUTPUT (only for ps and
-s SIZE, --size SIZE specify canvas size on the format 'width'x'height'
-S STYLE, --style STYLE
specify a C file name which define a style
-v, --verbose print informations about the running
- rootprint example.root:hist
Create a pdf file named 'hist.pdf' which contain the histogram 'hist'.
- rootprint -d histograms example.root:hist
Create a pdf file named 'hist.pdf' which contain the histogram 'hist' and put it in the directory 'histograms' (create it if not already exists).
- rootprint -f png example.root:hist
Create a png file named 'hist.png' which contain the histogram 'hist'.
- rootprint -o histograms.pdf example.root:hist*
Create a pdf file named 'histograms.pdf' which contain all histograms whose name starts with 'hist'. It works also with postscript.
Hello, thank you so much for your help! Unfortunately, this command does not work since I have an older version of ROOT (5.34/10). I created a function to convert the histogram and it works, however, I need to find a way to create an array of the names of the histograms so I can input it to the function. Do you have an idea on how to do this? Thank you very much!
if you’re stuck with a ROOT version that doesn’t have
rootprint, you could still use “my”
$> root-print -h
Usage: root-print [options] file.root [file.root [...]]
$> root-print -f pdf ./testdata/histos.root
$> root-print -f pdf ./testdata/histos.root:h1
$> root-print -f pdf ./testdata/histos.root:h.*
$> root-print -f pdf -o output ./testdata/histos.root:h1
output format for plots (pdf, png, svg, ...) (default "pdf")
output directory for plots
-v enable verbose mode
I have put binaries over there:
but if you have a Go installation (Go is installed on
lxplus, for instance), it’s as simple as:
$> go get -v go-hep.org/x/hep/rootio/cmd/root-print
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.