我正在尝试复制计算素数的步骤函数,如此处所示。
我试过这个代码
mylist = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]plt.gca().set_aspect("equal")
plt.autoscale(False)
plt.xlim(0, 31)
plt.ylim(0, 15)
y=0
for p in mylist:
if sympy.isprime(p)==2:
plt.plot(1,0)
if sympy.isprime(p):
x=p-1
y=y+1
#print(x,y)
plt.plot(x,y, marker='.')
else:
x=p-1
#print(x,y)
plt.plot(x,y, marker='.')
plt.show()
但它至少在两个方面失败了:
(1) 我无法使非素数比素数高 1 个单位。我的向右移动。
(2) 正如在参考图中,x 轴应继续为 1,2,3,4,5…,并且绘制的每个数字将位于相应数字的上方。在我的代码中,x 轴不正确。
您能给我一些关于如何解决这个问题的提示吗?我刚刚开始学习 matplotlib。
我查看了step函数,但我认为它在这种情况下不起作用。谢谢。