Решение по использованию списка осей abevieiramota работает очень хорошо, пока вы не используете только один ряд изображений, как указано в комментариях. Использование разумного соотношения сторон для figsize
помогает, но все еще далек от совершенства. Например:
import numpy as np
import matplotlib.pyplot as plt
fig, axes = plt.subplots(nrows=1, ncols=3, figsize=(9.75, 3))
for ax in axes.flat:
im = ax.imshow(np.random.random((10,10)), vmin=0, vmax=1)
fig.colorbar(im, ax=axes.ravel().tolist())
plt.show()
Функция colorbar предоставляет параметр shrink
, который является коэффициентом масштабирования для размер осей цветной панели. Это требует некоторых ручных проб и ошибок. Например:
fig.colorbar(im, ax=axes.ravel().tolist(), shrink=0.75)
Какие конкретные изменения необходимо внести в код ниже, чтобы приложение python в app.py могло успешно общаться с redis, работающим в одном кластере?
redis = Redis(host="redis-master", db=0, socket_connect_timeout=2, socket_timeout=2)
, потому что установленный вами
Service
имеет имяredis-master
, хотя это простое изменение, предложенное выше , предполагает , что приложение флэша работает в том же kubernetes namespace какredis-master
Service
. Если это неверно, вам нужно переключить его на чтение:redis = Redis(host="redis-master.whatever-namespace.svc.cluster.local",
и заменить
whatever-namespace
на фактическое, правильное пространство имен. Если вы не помните или не знаете,kubectl get --all-namespaces=true svc | grep redis-master
напомнит вам.
redis = Redis(host="redis-master", db=0, socket_connect_timeout=2, socket_timeout=2)
? Я хотел бы понять, что это на самом деле делает, и вы объясняете только имя хоста в своей текущей версии ответа. – CodeMed 17 July 2018 в 00:45host=
состоит в том, что кубернете имеет свой собственный DNS-сервер, в котором каждыйService
зарегистрирован под своим полностью квалифицированным «именем кластера», что означаетname:
Service
и егоnamespace:
, а затемsvc.cluster.local
(который один может i> настроить, но я никогда не видел, чтобы такое происходило). Из-за того, как работаетresolv.conf
, до тех пор, пока путь поиска DNS совпадает, вы можете просто использовать имяService
, что, по-видимому, работает в вашем случае. – Matthew L Daniel 18 July 2018 в 03:11