我正在尝试精确地复制带状图,以便我可以画线并可靠地在它们上写字。但是,当我生成带有抖动的带状图时,抖动是随机的,从而使我无法实现自己的目标。
我盲目尝试了在其他StackOverflow帖子中发现的一些rcParam,例如mpl.rcParams['svg.hashsalt']
无效。我也尝试为random.seed()
设置种子,但没有成功。
我正在运行的代码如下。
import seaborn as sns
import matplotlib.pyplot as plt
import random
plt.figure(figsize=(14,9))
random.seed(123)
catagories = []
values = []
for i in range(0,200):
n = random.randint(1,3)
catagories.append(n)
for i in range(0,200):
n = random.randint(1,100)
values.append(n)
sns.stripplot(catagories, values, size=5)
plt.title('Random Jitter')
plt.xticks([0,1,2],[1,2,3])
plt.show()
此代码会像我想要的那样生成一个剥离图。但是,如果您运行两次代码,由于抖动,您将获得不同的位置。我正在制作的图形要求抖动不显得荒谬,但我想在图形上书写。但是,在运行代码之前无法知道这些点的确切位置,而每次运行代码时,这些位置都会改变。
是否有任何方法可以为海底条形图上的抖动设置种子,使其完全可重现?
将NumPy的random.randint()
与固定的随机种子一起使用会很好,并且在每次运行期间都会生成相同的数据。您可能会参考random.randint()
帖子,以了解this]的异常行为
random.seed()