在matplotlib等高线图中手动设置标签错误

用户名

我正在尝试在下面的代码中向轮廓图添加手动标签。标签有些随机地打印。有谁知道如何解决这个问题?这似乎是Matplotlib中的错误。

问候,大卫

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()

在此处输入图片说明

索洛GP卡斯特罗

这是预期的行为。

它为参数中x, y包含的每个数据坐标选择最接近的轮廓曲线manual当为许多坐标找到相同的轮廓曲线时,可能会发生这种情况,就像您的情况一样,它们会开始凝聚。

如果您使用过:

y_pick = [0.01, 0.025, 0.05, 0.075, 0.1, 0.15, 0.2, 0.3, 0.5]
labelpos = ((0, i) for i in y_pick)

你会得到类似:

在此处输入图片说明


主题外:

您可以向量化您的代码,从而避免相对缓慢的for循环:

import numpy as np
import matplotlib.pyplot as plt

a = 0.2

def fwp(x, y, a):
    return (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.))))

resolution = 100
xarray = np.linspace(0, 0.25, num=resolution)
yarray = np.linspace(0, 1, num=resolution)
x, y = np.meshgrid(xarray, yarray, copy=False)
A = fwp(x, y, a)
A[A<=0] += 1
B = np.fliplr(A)
AB = np.hstack((B, A))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

给定范围内的matplotlib等高线图

来自分类Dev

ggplot2等高线图中的自定义级别?

来自分类Dev

将水平值存储在等高线图中

来自分类Dev

等高线图x标签

来自分类Dev

使用Matplotlib滑块更新等高线图级别

来自分类Dev

Python Matplotlib等高线图中的非线性缩放

来自分类Dev

设置色标以登录等高线图

来自分类Dev

Matlab:用等高线填充等高线图

来自分类Dev

使用geom_contour_filled手动设置等高线图的比例

来自分类Dev

多元高斯的等高线图

来自分类Dev

从数据框创建等高线图

来自分类Dev

填充matplotlib等高线图

来自分类Dev

填充matplotlib等高线图

来自分类Dev

从R的等高线图中的轮廓图中删除图例

来自分类Dev

在给定范围内的matplotlib等高线图

来自分类Dev

从matplotlib等高线图中提取特定路径

来自分类Dev

八度等高线图

来自分类Dev

等高线图x标记

来自分类Dev

等高线图例-Matplotlib

来自分类Dev

同一图中有多个等高线图

来自分类Dev

Matlab:用等高线填充等高线图

来自分类Dev

使用函数绘制等高线图

来自分类Dev

坏等高线图

来自分类Dev

生成内联标签值后,是否可以编辑等高线图的内联标签?

来自分类Dev

在 matplotlib 等高线图中设置轴比例

来自分类Dev

条件等高线图

来自分类Dev

平滑边缘等高线图

来自分类Dev

Python 中 matplotlib 等高线图的 ValueError

来自分类Dev

散景中的等高线图