Python 如何在散点图matplotlib中缩小图例元素的比例?
让我们假设我有这个散点图,并希望保持图中点的大小,但在图例中,我希望将大小表示为1,2,。。。而不是50100Python 如何在散点图matplotlib中缩小图例元素的比例?,python,numpy,matplotlib,Python,Numpy,Matplotlib,让我们假设我有这个散点图,并希望保持图中点的大小,但在图例中,我希望将大小表示为1,2,。。。而不是50100 视情况而定。如果要显示的数字是任意的,即与实际大小无关,则可以提供一个数字列表作为标签 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,
视情况而定。如果要显示的数字是任意的,即与实际大小无关,则可以提供一个数字列表作为标签
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()
将a2除以50?如果散点图中的点不仅大小不同,而且颜色也不同,并且大小和颜色之间的关系是线性的(例如,大小为2的点的暗度是大小为1的点的暗度的两倍),我们能否在您建议的图例中显示色差?
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()