gpt4 book ai didi

python - 如何在散点图 matplotlib 中缩小图例元素?

转载 作者:行者123 更新时间:2023-12-01 06:41:44 26 4
gpt4 key购买 nike

假设我有这个散点图,并且希望保留图中点的大小,但在图例中,我希望将大小表示为 1,2,... 而不是 50,100,... enter image description here

import numpy as np
import matplotlib.pyplot as plt

N = 50
x = np.random.rand(N)
y = np.random.rand(N)
a2 = 300*np.random.rand(N)

sc = plt.scatter(x, y, s=a2, alpha=0.5)
plt.legend(*sc.legend_elements("sizes", num=6))
plt.show()

最佳答案

这要看情况。如果您想要显示的数字是任意的,即与实际大小无关,您可以提供数字列表作为标签。

import numpy as np
import matplotlib.pyplot as plt

N = 50
x = np.random.rand(N)
y = np.random.rand(N)
a2 = 300*np.random.rand(N)

sc = plt.scatter(x, y, s=a2, alpha=0.5)
plt.legend(sc.legend_elements("sizes", num=6)[0], [1,2,3,4,5])
plt.show()

但是,如果要显示的数字与某些数据之间存在关系,

import numpy as np
import matplotlib.pyplot as plt

N = 50
x = np.random.rand(N)
y = np.random.rand(N)
a3 = np.random.randint(1,6, size=N)

f = lambda a: 12*a**2 # function to calculate size from data
g = lambda s: np.sqrt(s/12) # inverse function to calc. data from size

sc = plt.scatter(x, y, s=f(a3), alpha=0.5)
plt.legend(*sc.legend_elements("sizes", num=5, func=g))
plt.show()

关于python - 如何在散点图 matplotlib 中缩小图例元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59428303/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com