小编use*_*259的帖子

不使用 plt 从直方图中获取值

有没有办法在不绘制**的情况下获取直方图的“x”和“y”中的值?我在我的代码中多次(在每个循环中)使用下面的函数,我注意到我的代码在每个循环中变得越来越慢。

** 我不确定它在内部所做的是否是绘制图形,但我知道尽管使用了 plt.close(),但我的代码中的缓慢与函数“plt.hist”有关。谢谢你。

# a is a list
def function_hist(a, ini, final):

    # 12 bins
    bins = np.linspace(ini, final, 13)
    weightsa = np.ones_like(a)/float(len(a))
    y, x, _ = plt.hist(a, bins, weights = weightsa)
    plt.close()
Run Code Online (Sandbox Code Playgroud)

python histogram

3
推荐指数
1
解决办法
6830
查看次数

多行的自定义图例,同一文本有两个标记

我想执行如图所示的图例类型在此输入图像描述

我用一些技巧做的那个图只是为了代表我真正想要的东西,所以它不能很好地显示图例中粉红色标记的颜色。

图中圆圈代表两个不同模型的相同参数;三角形和方形标记也是如此。我想将两个引用相同参数的圆形标记放置在图例的第一行中,类似地,将其他两个标记放置在该标记下方的行上。谢谢。

代码:

import matplotlib.pyplot as plt

q1 = [100.0, 60.0, 200.0, 300.0]
NO1 = [0.35799999999999998, 0.33100000000000002, 0.22900000000000001,     0.17799999999999999]
No1 = [0.34599999999999997, 0.29899999999999999, 0.20699999999999999, 0.14999999999999999]
Nb1 = [0.46600000000000003, 0.45600000000000002, 0.27800000000000002, 0.24399999999999999]

q2 = [60.0, 100.0, 200.0, 300.0]
NO2 = [0.44700000000000001, 0.29199999999999998, 0.28299999999999997, 0.253]
No2 = [0.38900000000000001, 0.28499999999999998, 0.311, 0.251]
Nb2 = [0.44, 0.34899999999999998, 0.45900000000000002, 0.39400000000000002]

fig, ax = plt.subplots(figsize = (6,3))

ax.plot(q1, NO1, marker = 'o', markerfacecolor = 'none', markeredgewidth = 1, color = 'gray', linestyle = '', …
Run Code Online (Sandbox Code Playgroud)

python matplotlib legend

3
推荐指数
1
解决办法
2597
查看次数

在 Ubuntu 20 上安装 ifort

我正在尝试在 Ubuntu20 上安装 ifort 编译器。我从以下网站下载了安装文件:intel

在此输入图像描述

这是一个扩展名为 .sh 的文件,我将其设为可执行文件:

  Downloads$ chmod +x l_fortran-compiler_p_2021.1.2.62_offline.sh
  Downloads$ ./l_fortran-compiler_p_2021.1.2.62_offline.sh
Run Code Online (Sandbox Code Playgroud)

这打开了软件安装程序:

在此输入图像描述 在此输入图像描述

但是,我无法使用 ifort 编译器。例子:

  ifort -o name name.for
Run Code Online (Sandbox Code Playgroud)

它给出以下消息:

  Command 'ifort' not found, did you mean:

    command 'fort' from deb fort-validator (1.2.0-1)
    command 'isort' from deb isort (4.3.4+ds1-2)

  Try: sudo apt install <deb name>
Run Code Online (Sandbox Code Playgroud)

我需要安装 intel ifort 编译器,因为如果使用 -fast 选项编译,可执行文件会更快。

fortran intel-fortran

2
推荐指数
1
解决办法
2万
查看次数

应用包含输入等列表的函数

我想从其他列表(a,b,c)创建一个新列表(V)并使用一个函数,但我想利用python并将函数应用于三个列表而不是逐个元素.

例如,我有列表a,b和c; 应用函数后的结果应为V.谢谢.

def mag(a, b, c):
    # something sophisticated
    return (a+b)*c

a = [1, 5, 7]
b = [4, 8, 3] 
c = [2, 6, 3]
V = [10, 78, 30]
Run Code Online (Sandbox Code Playgroud)

python map-function

1
推荐指数
1
解决办法
48
查看次数