首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python pylab图表绘制和循环

Python pylab图表绘制和循环
EN

Stack Overflow用户
提问于 2019-05-12 23:41:45
回答 2查看 30关注 0票数 0

我正在学习Python,我想知道是否有人可以帮助我在下面的代码中正确地呈现图表,例如绘制数据点的序列。我放置了打印语句,这样我就可以查看计算是否正确。

谢谢

代码语言:javascript
复制
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()
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-12 23:55:04

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

代码语言:javascript
复制
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循环外部绘制

代码语言:javascript
复制
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')   

票数 1
EN

Stack Overflow用户

发布于 2019-05-13 00:21:48

您可以对函数进行矢量化,并使用NumPy数组来避免for循环,从而更好地通知matplotlib要绘制的内容

代码语言:javascript
复制
import numpy as np
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

vectorized_some_function = np.vectorize(some_function)

ff = float(25)
dd = np.linspace(0, 1100, 12)
tt = vectorized_some_function(ff, dd)
plot(dd, tt)
title("Something")
xlabel("x label")
ylabel("y label")
show()

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56100837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档