importar numpy como np desde matplotlib importar pyplot como plt desde matplotlib importar coloresdef simplify_contours ( qcset , Thresh = plt . rcParams [ 'path.simplify_threshold' ]): para c en qcset . colecciones : caminos = c . get_paths () para i , p en enumerate ( rutas ): p . simplify_threshold = Thresh / plt . mcd () . rutas de dpi [ i ] = p . limpiado ( simplificar = Verdadero )xmax = 3,2 vmax = 4 niveles = np . linspace ( - vmax , vmax , 22 ) X , Y = np . mgrid [ - xmax : xmax : 400 j , - xmax : xmax : 400 j ] V = 1.0 / np . máximo ( np . sqrt (( X + 1 ) ** 2 + ( Y + 1 ) ** 2 ), 1e-5 ) V + = 1.0 / np . máximo ( np . sqrt (( X - 1 ) ** 2 + ( Y - 1 ) ** 2 ), 1e-5 ) V - = 1.0 / np . máximo ( np . sqrt (( X + 1 ) ** 2 + ( Y - 1 ) ** 2 ), 1e-5 ) V - = 1.0 / np . máximo ( np . sqrt (( X - 1 ) ** 2 + ( Y + 1 ) ** 2 ), 1e-5 ) plt . figura ( tamaño de la figura = ( 6 , 6 )) . add_axes([ 0 , 0 , 1 , 1 ]) contf = plt . contourf ( X , Y , V , niveles = niveles , cmap = 'RdBu_r' , extend = 'ambos' , norma = colores . SymLogNorm ( linthresh = 1.5 , vmin = - vmax , vmax = vmax )) simplify_contours (contf , plt . rcParams [ 'lines.linewidth' ]) cont = plt . contorno ( X , Y , V , niveles = contf . niveles , colores = 'k' , estilos de línea = 'sólido' ) plt . xticks ([]), plt . yticks ([]) plt . gca () . set_aspect ( aspecto = 'igual') plt . gca () . eje ( 'apagado' ) para i en - 1 , 1 : para j en - 1 , 1 : plt . texto ( i , j , { - 1 : u ' \ u2212 ' , 1 : '+' } [ i * j ], tamaño = 18 , ha = 'centro', va = 'centro' ) plt . savefig ( ' QuadrupoleContour.svg ' )