Sto tentando di aggiungere etichette manuali al Contourplot nel seguente codice. Le etichette sono stampate in modo casuale. Qualcuno ha un'idea su come risolvere questo problema? Sembra un bug in Matplotlib.Impostazione delle etichette manualmente nel plotplash del contorno di matplotlib errato
saluti, David
import numpy as np
import matplotlib.pyplot as plt
a = 0.2
resolution = 100
xarray = np.linspace(0,0.25,num=resolution)
yarray = np.linspace(0,1,num=resolution)
A = np.empty([resolution,resolution])
xc = 0
yc = 0
for x in xarray:
for y in yarray:
#print xc,yc
wp = 1./np.pi*np.arctan(np.sin(np.pi*y)*np.sinh(np.pi*a/2.)/
(np.cosh(np.pi*x)-np.cos(np.pi*y)*np.cosh(np.pi*a/2.)))
if wp <= 0:
wp = wp+1
A[xc, yc] = wp
else:
A[xc, yc] = wp
yc += 1
yc=0
xc += 1
A = A.transpose()
B = np.fliplr(A)
AB = np.hstack((B,A))
fullx = np.hstack((-xarray[::-1],xarray))
#plot
fig = plt.figure()
fig.suptitle("Weighting potential")
ax = plt.subplot(1,1,1)
CS = plt.contour(fullx,yarray,AB,10, colors='k')
labelpos = np.dstack((np.zeros(9),np.arange(0.1,1,0.1)))[0]
plt.clabel(CS,inline=True, fmt='%1.1f',fontsize=9, manual=labelpos)
plt.show()
se si tenta di utilizzare più di 5 etichette, si ottiene il primo (0,1) ripetuto nella curva superiore. con 'np.dstack ((np.zeros (4), np.arange (0.1,0.5,0.1))) [0]' ottieni una figura corretta. sembra un errore anche per me – joaquin