matplotlib 方形气泡图

vkc1a9a2  于 2023-11-22  发布在  其他
关注(0)|答案(1)|浏览(140)

我希望做一个气泡图,但不是圆,而是正方形,其面积按其值缩放。所以类似于这样:


的数据
这在Matplotlib中可能吗?或者泡泡Map只能由圆圈组成吗?

hec6srdp

hec6srdp1#

这段代码使用plot()plot()函数,利用标记选项,重新创建了示例图表上的一些功能:

import matplotlib.pyplot as plt
import numpy as np
import random

xs = np.arange(1, 5, 1)
ys = np.arange(0.5, 6, 1)

colors = ["gray", "red", "green"]

def square_size_color(value):

    square_color = random.choice(colors)

    if value < 1:
        square_size = random.choice(range(1, 10))
    if 3 > value > 1:
        square_size = random.choice(range(10, 25))
    else:
        square_size = random.choice(range(25, 35))

    return square_size, square_color

for x in xs:
    for y in ys:
        square_size, square_color = square_size_color(y)
        plt.plot(x, y, linestyle="None", marker="s",  # 's' for square marker
                 markersize=square_size, mfc=square_color, mec=square_color)

plt.grid(visible=True, axis='y')
plt.xlim(0.5, 4.5)
plt.ylim(-0.5, 6.5)
plt.show()

字符串
这将产生类似于:


的数据
虽然可能有一个更直接的方法来做到这一点,我相信这将工作为你想做的事情。显然,你可以自定义的条件,大小和颜色,我使用的random.choice()只是为了图表看起来更漂亮。

相关问题