Нарисуйте осевые линии или начало координат для контурного графика Matplotlib

Я хочу нарисовать оси x=0 и y=0 на моем контурном графике, используя белый цвет. Если это слишком громоздко, я хотел бы иметь белую точку, обозначающую, где находится источник.

Мой контурный график выглядит следующим образом, а код для его создания приведен ниже.

xvec = linspace(-5.,5.,100)                               
X,Y = meshgrid(xvec, xvec)                                
fig = plt.figure(figsize=(6, 4))                      
contourf(X, Y, W,100)                             
plt.colorbar()                                    

введите здесь описание изображения


person nos    schedule 07.03.2012    source источник


Ответы (2)


Существует несколько вариантов (например, центрированные шипы), но в вашем случае вероятно, проще всего просто использовать axhline и < a href="http://matplotlib.sourceforge.net/api/pyplot_api.html?highlight=axvline#matplotlib.pyplot.axhline" rel="noreferrer">axvline.

E.g.

import numpy as np
import matplotlib.pyplot as plt

xvec = np.linspace(-5.,5.,100)                               
x,y = np.meshgrid(xvec, xvec)
z = -np.hypot(x, y)                                

plt.contourf(x, y, z, 100)                             
plt.colorbar() 

plt.axhline(0, color='white')
plt.axvline(0, color='white')

plt.show()

введите здесь описание изображения

person Joe Kington    schedule 07.03.2012
comment
spine.set_position('zero') это правильный путь, почему вместо этого вы рекомендуете рисовать линии вручную? - person azrdev; 07.08.2018
comment
Эта строка выдает ошибку - person Kelvin; 20.07.2021

Вы не можете просто наложить прямую линию?

plt.plot([0,0],[-4,4],lw=3,'w')
person ev-br    schedule 07.03.2012
comment
Эта строка генерирует и ошибку. Пожалуйста, объясните это дальше - person Kelvin; 20.07.2021