#!/usr/bin/env python
# encoding: utf-8
"""
fakeplot.py
This library allows to fake the matplotlib.plot module where it has not been installed.
Created by Marc-André on 2010-03-22.
Copyright (c) 2010 IGBMC. All rights reserved.
"""
from __future__ import print_function
__version__ = "0.2.1"
import sys
import os
current = 0
FAKE = True
[docs]class fake(object):
"""fake figure object"""
def __init__(self, *args, **key):
global current
current += 1
print("******* figure %d *****"%current)
[docs] def plot(self, *args, **key):
x = args[0]
label = key.get("label","")
plotname = key.get("plot_name","plot")
print("-- %s : %d points %s"%(plotname, len(x), label))
[docs] def hist(self, *args, **key):
key['plot_name'] = 'histogram'
plot(*args, **key)
try:
return (args[1],args[0],[3,4])
except:
return (len(args[0]),args[0],[3,4])
[docs] def errorbar(self, *args, **key):
key['plot_name'] = 'errorbar plot'
plot(*args, **key)
[docs] def semilogx(self, *args, **key):
plot(*args, **key)
xscale('log')
[docs] def semilogy(self, *args, **key):
plot(*args, **key)
yscale('log')
[docs] def loglog(self, *args, **key):
plot(*args, **key)
xscale('log')
yscale('log')
[docs] def contour(self, *args, **key):
if len(args) in (1,2):
(n,m) = args[0].shape
elif len(args) in (3,4):
(n,m) = ( len(args[0]), len(args[1]))
if (n,m) != args[2].shape:
raise "size missmatch in contour"
print("-- contour-plot : %d x %d"%(n,m))
contourf = contour
[docs] def yscale(self, *args, **key):
print("-- yscale",args)
[docs] def xscale(self, *args, **key):
print("-- xscale",args)
[docs] def set_xscale(self, *args, **key):
self.xscale(*args, **key)
[docs] def set_yscale(self, *args, **key):
self.yscale(*args, **key)
[docs] def text(self, *args, **key):
print("-- text :",args)
[docs] def legend(self, *args, **key):
pass
[docs] def show(self, *args, **key):
print("******** show")
[docs] def xlabel(self, *args, **key):
print("-- xlabel :",args[0])
set_xlabel = xlabel
[docs] def ylabel(self, *args, **key):
print("-- ylabel :",args[0])
set_ylabel = ylabel
[docs] def title(self, *args, **key):
print("-- title :",args[0])
[docs] def set_title(self, *args, **key):
self.title(*args, **key)
[docs] def suptitle(self, *args, **key):
print("-- suptitle :",args[0])
[docs] def grid(self, *args, **key):
if args[0]:
print('grid on')
[docs] def add_subplot(self, *args, **key):
print("*** subplot :",args[0])
return self
[docs] def set_xticklabels(self, *args, **key):
print("-- xtick :",args[0])
[docs] def set_yticklabels(self, *args, **key):
print("-- ytick :",args[0])
[docs] def xlim(self, *args, **key):
print("-- xlim :",args[0])
[docs] def ylim(self, *args, **key):
print("-- ylim :",args[0])
[docs]def subplot(*args, **key):
return gca().add_subplot(*args, **key)
[docs]def plot(*args, **key):
return gca().plot(*args, **key)
[docs]def hist(*args, **key):
return gca().hist(*args, **key)
[docs]def errorbar(*args, **key):
return gca().errorbar(*args, **key)
[docs]def semilogx(*args, **key):
return gca().semilogx(*args, **key)
[docs]def semilogy(*args, **key):
return gca().semilogy(*args, **key)
[docs]def loglog(*args, **key):
return gca().loglog(*args, **key)
[docs]def contour(*args, **key):
return gca().contour(*args, **key)
contourf = contour
[docs]def yscale(*args, **key):
return gca().yscale(*args, **key)
[docs]def xscale(*args, **key):
return gca().xscale(*args, **key)
[docs]def text(*args, **key):
return gca().text(*args, **key)
[docs]def legend(*args, **key):
return gca().legend(*args, **key)
[docs]def show(*args, **key):
return gca().show(*args, **key)
[docs]def xlabel(*args, **key):
return gca().xlabel(*args, **key)
[docs]def ylabel(*args, **key):
return gca().ylabel(*args, **key)
[docs]def xlim(*args, **key):
return gca().xlim(*args, **key)
[docs]def ylim(*args, **key):
return gca().ylim(*args, **key)
[docs]def title(*args, **key):
return gca().title(*args, **key)
[docs]def suptitle(*args, **key):
return gca().suptitle(*args, **key)
[docs]def grid(*args, **key):
return gca().grid(*args, **key)
print("-- matplotlib not available, using fake plot instead")
print("-- no graphic will be available")
[docs]def gca():
global gca0
if gca0 is None:
gca0 = fake()
return gca0
gca0 = None
if __name__ == '__main__':
print("This library creates fake entry methods allowing to fake minimum use of matplotlib.pyplot\neg:")
print("""
x=range(10)
plot(x)
f = figure()
f.semilogx(x+x,label="with label")
f.title('title')
f.text(10,20,'infigure text')
show()
produces :
""")
x=range(10)
plot(x)
f = figure()
f.semilogx(x+x,label="with label")
f.title('title')
f.text(10,20,'infigure text')
show()