Если вы возьмете, например, пример publi c visu_flow_shop.py и замените строку
visu.show()
на
visu.show()
import matplotlib.pyplot as plt
plt.savefig('figure.png')
, вы получите график в указанном файле png.
В качестве альтернативы, если вам нужно делать это чаще, вы можете использовать ответ, который я предоставил здесь : Создайте диспетчер контекста, который временно перенаправляет plt.show()
function:
import matplotlib.pyplot as plt
class Show:
'''Simple context manager to temporarily reroute plt.show().
This context manager temporarily reroutes the plt.show() function to
plt.savefig() in order to save the figure to the file specified in the
constructor rather than displaying it on the screen.'''
def __init__(self, name):
self._name = name
self._orig = None
def _save(self):
plt.savefig(self._name)
if False:
# Here we could show the figure as well
self._orig()
def __enter__(self):
self._orig = plt.show
plt.show = lambda: self._save()
return self
def __exit__(self, type, value, traceback):
if self._orig is not None:
plt.show = self._orig
self._orig = None
С этим вы можете сделать
with Show('figure.png'):
visu.show()
, чтобы записать цифру в файл, а не отображать ее.
Лучшим вариантом будет возможно, отправить запрос на изменение в docplex и запросить функцию savefig()
в классе / пакете visu
.