下面,我创建了一个简单的数据集示例。我有4分,每一步都改变了他们的价值。这些点绘制在x,y位置,我希望它们的大小随其值而变化。还有另一个问题,每个点都由一条线连接,我不想要它。 (我不能使用plt.scatter)

import pandas as pd
import matplotlib.pyplot as plt

data=[[1,1,3],[1,2,1],[2,1,9],[2,2,0]]
a=pd.DataFrame(data)
a.columns=['x','y','value']

data2=[[1,1,5],[1,2,2],[2,1,1],[2,2,3]]
b=pd.DataFrame(data2)
b.columns=['x','y','value']

data3=[[1,1,15],[1,2,7],[2,1,4],[2,2,8]]
c=pd.DataFrame(data3)
c.columns=['x','y','value']

final=[a,b,c]

for i in range(0,len(final)):
    fig, ax = plt.subplots()
    plt.plot(final[i]['x'],final[i]['y'],marker='o',markersize=22)


与此相关,我修复了线条出现的尺寸,该如何删除呢?
如果我更改了标记大小,它将不起作用

for i in range(0,len(final)):
    fig, ax = plt.subplots()
    plt.plot(final[i]['x'],final[i]['y'],marker='o',markersize=final[i]['value'])


就像我之前说的,我想要的结果是抽搐中的情节不同,只有点的维数取决于它们的值

最佳答案

由于不能使用散点,因此需要循环使用markersize的值,因为'o'不接受数组,而是接受标量。此外,仅绘制标记,就将size*5用作圆圈。我使用进一步扩大了圈子。

for i in range(0,len(final)):
    fig, ax = plt.subplots()
    for x, y, size in zip(final[i]['x'],final[i]['y'], final[i]['value']):
        plt.plot(x, y, 'o', markersize=size*5)


如果您想将它们绘制为子图

fig, axes = plt.subplots(1,3, figsize=(9, 2))

for i in range(0,len(final)):
    for x, y, size in zip(final[i]['x'],final[i]['y'], final[i]['value']):
        axes[i].plot(x, y, 'o', markersize=size*5)
plt.tight_layout()


python - 图:用其值改变点的尺寸-LMLPHP

关于python - 图:用其值改变点的尺寸,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56701664/

10-10 16:56