2015-06-16 3 views
1

Как определить цвет фона quiverkey, добавленного на участок колчана в matplotlib? В следующем примере, как я могу сделать его белым, чтобы он был более читаемым (даже если он переопределяет часть фигуры)?Цвет фона quiverkey в matplotlib

import matplotlib.pyplot as plt 
import numpy.random 

numpy.random.seed(2) 
x,y = numpy.meshgrid(range(11), range(11)) 
u,v = numpy.random.randn(101), numpy.random.randn(101) 

qv = plt.quiver(x,y,u,v) 
plt.quiverkey(qv, .5, 0.8, 5, 'Where is my background?', coordinates='axes', 
       fontproperties={'weight': 'bold'}, color='r', labelcolor='g') 

enter image description here

ответ

3

Вы можете изменить цвет фона в текстовом атрибуте quiverkey с помощью функции set_backgroundcolor. Полный пример,

import matplotlib.pyplot as plt 
import numpy.random 

numpy.random.seed(2) 
x,y = numpy.meshgrid(range(11), range(11)) 
u,v = numpy.random.randn(101), numpy.random.randn(101) 

qv = plt.quiver(x,y,u,v) 
qk = plt.quiverkey(qv, .5, 0.8, 5, 'Here is my background', coordinates='axes', 
       fontproperties={'weight': 'bold'}, color='r', labelcolor='g') 
t = qk.text.set_backgroundcolor('w') 
plt.show() 

enter image description here

+1

Благодаря @Ed Смит. Это может вызвать проблемы, поскольку ключевая стрелка не включена в эту манипуляцию (не имеет фона) и может быть, например, наложена текстовым фоном, если «labelsep» слишком низок ... Любая идея, как работать с текстом * и * arrow вместе (без использования патча 'Rectangle' ...)? – ztl

+0

Насколько я могу судить, «quiverkey» - это художник, который содержит объект «text» и «vector». Текстовый объект имеет связанный прозрачный 'bbox', который, вызывая' set_backgroundcolor', может быть изменен на цвет (эти процессы не добавляют новый патч прямоугольника). Вероятно, вы можете изменить 'qk.text.set_zorder' /' qk.vector.set_zorder', чтобы переместить текст под стрелкой, если есть проблема с перекрытием. –

+0

К сожалению, стрелка представляет собой объект колчана 'qk.Q', поэтому порядок может быть изменен на' qk.Q.set_zorder'. Я не думаю, что есть какие-либо методы для изменения фона для объекта «quiverkey» artist в целом ... –

Смежные вопросы