首页 > 解决方案 > Python pylab 图表绘图和循环

问题描述

我只是在学习 Python,我想知道是否有人可以帮助我让图表在以下代码中正确呈现,即绘制数据点的序列。我已经放置了打印语句,所以我可以查看计算是否正确。

谢谢

from pylab import *

def some_function(ff, dd):
    if dd >=0 and dd <=200:
        tt = (22/-90)*ff+24
    elif dd >=200 and dd <=1000:
        st = (22/-90)*(ff)+24
        gg = (st-2)/-800
        tt = gg*dd+(gg*-1000+2)
    else:
        tt = 2.0
    return tt

ff = float(25)
for dd in range (0, 1200, 100):
    tt1 = some_function(ff, dd)
    plot(dd,tt1)
    print(dd)
    print(tt1)
title("Something")
xlabel("x label")
ylabel("y label")
show()

标签: pythonmatplotlibplot

解决方案


由于您一次绘制一个点,因此您需要散点图或带有标记的图

for dd in range (0, 1200, 100):
    tt1 = some_function(ff, dd)
    scatter(dd, tt1) # Way number 1
    # plot(dd,tt1, 'o') # Way number 2

在此处输入图像描述

编辑(在下面的评论中回答您的第二个问题):将结果保存在列表中并在 for 循环之外绘制

result = []
dd_range = range (0, 1200, 100)
for dd in dd_range:
    tt1 = some_function(ff, dd)
    result.append(tt1)
plt.plot(dd_range, result, '-o')   

在此处输入图像描述


推荐阅读