【问题标题】:Circular contour map in pythonpython中的圆形等高线图
【发布时间】:2021-08-04 16:59:45
【问题描述】:

我有一个直径为 120 毫米的圆盘,我在其中测量 20 个不同位置的温度。这些测量位置是随机的。我正在寻找一种方法来绘制它,如附加的所需绘图链接中所示。当我使用 tricontour 时,它只是绘制随机点。我无法找到填充圆圈的方法,如下图所示。有没有其他方法可以绘制这个?花了很多时间寻找它,但没有成功。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

data = {"x": [110,50,-85,20,45,0,-80,-30,-105,80], "y": 
[0,100,75,-90,20,115,-85,-20,-45,-90],"z":[10,2,6,4,9,12,2,6,4,12]}
x = data['x']
y = data['y']
z = data['z']

f, ax = plt.subplots(1)
plot = ax.tricontourf(x,y,z, 20) 
ax.plot(x,y, 'ko ')
circ1 = Circle((0, 0), 120, facecolor='None', edgecolor='r', lw=5)
ax.add_patch(circ1)
f.colorbar(plot)

示例数据:

想要的情节:

我从 tricontour 得到的:

【问题讨论】:

  • Matplotlib 有极轴

标签: python pandas matplotlib contour


【解决方案1】:

有很多数据可以做一个非常好的轮廓图,但这里有一个解决方案与您的数据和一个具有更大数据集的示例:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.tri as tri


data = {"x": [110,50,-85,20,45,0,-80,-30,-105,80], "y": 
[0,100,75,-90,20,115,-85,-20,-45,-90],"z":[10,2,6,4,9,12,2,6,4,12]}
df = pd.DataFrame(data)

fig = plt.figure()
ax = fig.add_subplot(projection='polar')

ax.set_title("tricontour")
ax.tricontourf(df["x"], df["y"], df["z"],20)

plt.show()

给了

对于更大的数据框:

import matplotlib.pyplot as plt 
import pandas as pd
import numpy as np

df= pd.DataFrame(np.random.randint(0,1000,size=(1000, 3)), columns=list('XYZ'))

fig = plt.figure()
ax = fig.add_subplot(projection='polar')

ax.set_title("tricontour")
ax.tricontourf(df["X"], df["Y"], df["Z"],20)

plt.show()

返回

【讨论】:

  • 感谢您的建议。我的意图是用可用的数据点填充直径为 120 毫米的整个圆。通过推断或其他方式。
猜你喜欢
  • 2021-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-10
  • 2020-09-24
  • 1970-01-01
  • 1970-01-01
  • 2019-08-09
相关资源
最近更新 更多