Source code for plugins.plot2d
#
##
## This file is part of pyFormex 1.0.6 (Tue Mar 19 11:06:48 CET 2019)
## pyFormex is a tool for generating, manipulating and transforming 3D
## geometrical models by sequences of mathematical operations.
## Home page: http://pyformex.org
## Project page: http://savannah.nongnu.org/projects/pyformex/
## Copyright 2004-2018 (C) Benedict Verhegghe (benedict.verhegghe@ugent.be)
## Distributed under the GNU General Public License version 3 or later.
##
## This program is free software: you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation, either version 3 of the License, or
## (at your option) any later version.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program. If not, see http://www.gnu.org/licenses/.
##
"""plot2d.py
Generic 2D plotting functions for pyFormex.
"""
from __future__ import absolute_import, division, print_function
import pyformex as pf
from pyformex import utils
from pyformex.arraytools import *
[docs]def showStepPlot(x,y,label='',title=None,plot2d_system=None):
"""Show a step plot of x,y data.
"""
if title is None:
title = 'pyFormex step plot: %s' % label
maxlen = min(len(x), len(y))
x = x[:maxlen]
y = y[:maxlen]
if plot2d_system is None:
plot2d_system = pf.cfg['plot2d']
if not utils.hasModule(plot2d_system):
pf.error("I can not draw the requested plot. You need to install one of the supported plotting libraries (python-gnuplot or python-matplotlib) and set the appropriate preference in you pyformex configuration file or via the Settings->Settings Dialog menu item.")
return
if plot2d_system == 'gnuplot':
import Gnuplot
data = Gnuplot.Data(x, y, title=label, with_='steps')
g = Gnuplot.Gnuplot(persist=1)
g.title(title)
g.plot(data)
elif plot2d_system == 'qwt':
pass
#from gui.Qwt5.qplt import *
elif plot2d_system == 'matplotlib':
import matplotlib.pyplot as plt
plt.step(x, y, where='post', label=label)
plt.title(title)
plt.legend()
plt.show()
[docs]def showHistogram(x,y,label,cumulative=False,plot2d_system=None):
"""Show a histogram of x,y data.
"""
if cumulative:
fill = y[-1]
else:
fill = y[0]
y = growAxis(y, len(x)-len(y), fill=fill)
showStepPlot(x, y, label, plot2d_system=plot2d_system)
[docs]def createHistogram(data,cumulative=False,**kargs):
"""Create a histogram from data
"""
y, x = histogram(data,**kargs)
if cumulative:
y = y.cumsum()
return y, x
# End