首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何用Python中给定的数据绘制逻辑图?

如何用Python中给定的数据绘制逻辑图?
EN

Stack Overflow用户
提问于 2019-05-19 13:26:49
回答 1查看 47关注 0票数 0

嗯,我真的不知道如何正确地问这个问题,但问题是。我有一些为我生成数据的代码。我有100个雷诺数,从0.1-2017,在每个雷诺数,将有剪应力值的10.000元。所以我想要x轴上的雷诺数,以及y轴上的剪应力(从0.001到10),两者都是对数尺度,这10.000个元素就是图上的点。所以我在图上总共有100.000点。

在这段代码中,我为每个雷诺数生成了0.1到2017的Re和10元素的剪应力值。所以,在x轴上的0.1点,我需要10分。所以我去找了,但搞不懂。那我该怎么做?

代码语言:javascript
运行
复制
n = np.random.normal(mean, sd, 100)
for i in range(0, 105):
    Re = 0.1 * (1.1**i)  
    B = e ** (-0.08 * Re) * (2.5 * np.log(Re) + 5.25) + 8.5 * (1 - e ** (-0.08 * Re))  
    C = 0.8+0.9*((e**(-0.08*Re)/(Re**2))+((1-e**(-0.08*Re))/(B**2)))**(-0.5)  
    F = 0.31*Re*e**(-0.1*Re)+1.8*e**(-0.88*d50/D)*(1-e**(-0.1*Re)) 
    A = F/C   
    for j in range(10):
        Dcbss = 0.52*math.tan(fi) / (((1 + (abs(n[j])*A))**2)*(1+(1/2.5)*((abs(n[j])*F)**2)*math.tan(fi)))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-19 14:21:20

使用散点图。对于每个雷诺数,你有n个应力值。散点图需要的x值和y值一样多,所以必须创建与y值长度相同的x值序列。

代码语言:javascript
运行
复制
x = [1,1,1,1]
y = [1,2,3,4]

如果您有多组x/y数据,您可以像这样手动绘制它

代码语言:javascript
运行
复制
x = [1,1,1,1]
y = [1,2,3,4]
plt.scatter(x,y)

x = [2,2,2,2]
y = [1.1,2.1,3.1,4.1]
plt.scatter(x,y)

plt.show()
plt.close()

对于您的情况,您希望在内环中积累x和y值,并在内环结束时绘制它们。

代码语言:javascript
运行
复制
from matplotlib import pyplot as plt
for i in range(0, 105):
    x = []
    y = []
    Re = 0.1 * (1.1**i)  
    B = e ** (-0.08 * Re) * (2.5 * np.log(Re) + 5.25) + 8.5 * (1 - e ** (-0.08 * Re))  
    C = 0.8+0.9*((e**(-0.08*Re)/(Re**2))+((1-e**(-0.08*Re))/(B**2)))**(-0.5)  
    F = 0.31*Re*e**(-0.1*Re)+1.8*e**(-0.88*d50/D)*(1-e**(-0.1*Re)) 
    A = F/C   
    for j in range(10):
        Dcbss = 0.52*math.tan(fi) / (((1 + (abs(n[j])*A))**2)*(1+(1/2.5)*((abs(n[j])*F)**2)*math.tan(fi)))
        x.append(i)
        y.append(Dcbss)
    plt.scatter(x,y)
plt.show()
plt.close()

来自文档:The plot function will be faster for scatterplots where markers don't vary in size or color.。如果是这样的话,只需使用.plot()并指定标记形状- plt.plot(x,y,'ro')而不是plt.scatter(x,y)

matplotlib.pyplot.scatter()

matplotlib.pyplot.plot()

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

https://stackoverflow.com/questions/56208272

复制
相关文章

相似问题

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