【问题标题】:plotting the listed value in python在python中绘制列出的值
【发布时间】:2020-11-29 14:19:45
【问题描述】:

各位专家,我编写了一个简单的 python 脚本来访问值列表并在 for 循环中进行了一些计算,而绘图(x,y)它没有给出绘图。我的程序如下所示。我希望一些专家将帮助我纠正问题。在此先感谢。

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

【问题讨论】:

  • 你不能画一个点

标签: python list for-loop matplotlib


【解决方案1】:
a=1978780
b=[4,40,90,100,600,785,900]


for i in range(len(b)):
    zx=math.exp(b[i]/a)*5
#     print(b[i],zx)
    plt.scatter(b[i],zx)
plt.show()

这将解决问题。 (但不建议尝试其他方案,快速高效)

或者这个

a=1978780
b=np.array([4,40,90,100,600,785,900])


zx=np.exp(b/a)*5
plt.plot(b,zx)
plt.show()

或者这个

a=1978780
b=np.array([4,40,90,100,600,785,900])


for i in range(len(b)):
    zx=math.exp(b[i]/a)*5
#     print(b[i],zx)
    plt.scatter(b[i],zx)
plt.ylim(4.999,5.005)
plt.show()

【讨论】:

  • 去掉第一个解决方案,在numpy数组中迭代没用
  • @WasifHasan 我知道,我只是想将结构保留为他建议的代码。
【解决方案2】:

你不能对 numpy 数组应用矢量化操作并绘制它吗?

import matplotlib.pyplot as plt
import numpy as np


a=1978780
b=np.array([4,40,90,100,600,785,900])

zx=np.exp(b/a)*5

plt.plot(b,zx)
plt.show()

【讨论】:

    【解决方案3】:

    您想使用 numpy 处理数组的能力。这样,不再需要遍历列表,您可以在一行中编写函数。

    import matplotlib.pyplot as plt
    import numpy as np
    
    a = 1978780
    b = np.array([4, 40, 90, 100, 600, 785, 900])
    zx = np.exp(b/a)*5
    
    fig, ax = plt.subplots()
    ax.plot(b, zx)
    fig.show()
    

    【讨论】:

      猜你喜欢
      • 2013-06-26
      • 1970-01-01
      • 1970-01-01
      • 2021-02-18
      • 1970-01-01
      • 2013-02-03
      • 1970-01-01
      • 2021-11-04
      • 1970-01-01
      相关资源
      最近更新 更多