0

我有这 3 个 DataFrame,每个都有等电位线的点。张力为 v1、v2 和 v3。我需要在同一张图中绘制等势线。有谁知道如何做到这一点?

d1={'X': [0.0, 0.1, 0.2, 0.1, 0.2],
    'Y': [0.0, 1.9, 2.9, -1.0, -2.0]}
df1=pd.DataFrame(d1, columns=['X', 'Y'])
v1 = 3.93


d2={'X': [-2.0, -2.3, -2.4, -2.3, -2.5],
    'Y': [0.0, 2.0, 2.9, -2.0, -3.0]}
df2=pd.DataFrame(d2, columns=['X', 'Y'])
v2 = 4,98


d3={'X': [2.0, 2.3, 3.1, 2.3, 3.1],
    'Y': [0.0, 2.0, 3.9, -2.0, -4.0]}
df3=pd.DataFrame(d3, columns=['X', 'Y'])
v3 = 3.07
4

1 回答 1

0

您可以使用 matplotlib 的plt.plot(). 对于要闭合的多边形,应在末尾再次附加第一个点。请注意,示例数据不会形成漂亮的多边形。可选地,多边形可以用 着色plt.fill()

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

d1 = {'X': [0.0, 0.1, 0.2, 0.1, 0.2], 'Y': [0.0, 1.9, 2.9, -1.0, -2.0]}
df1 = pd.DataFrame(d1, columns=['X', 'Y'])
v1 = 3.93

d2 = {'X': [-2.0, -2.3, -2.4, -2.3, -2.5], 'Y': [0.0, 2.0, 2.9, -2.0, -3.0]}
df2 = pd.DataFrame(d2, columns=['X', 'Y'])
v2 = 4, 98

d3 = {'X': [2.0, 2.3, 3.1, 2.3, 3.1], 'Y': [0.0, 2.0, 3.9, -2.0, -4.0]}
df3 = pd.DataFrame(d3, columns=['X', 'Y'])
v3 = 3.07

for df, v, color in zip([df1, df2, df3], [v1, v2, v3], ['dodgerblue', 'crimson', 'limegreen']):
    x = np.append(df['X'], df['X'][0])
    y = np.append(df['Y'], df['Y'][0])
    plt.plot(x, y, color=color, label=f'v={v}')
    plt.fill(x, y, color=color, alpha=0.3)
plt.legend()
plt.show()

示例图

于 2020-09-24T19:10:50.983 回答