首页 > 解决方案 > Python 无法生成绘图

问题描述

我使用以下代码生成了一个图,该图显示了对特定方程的解:

import numpy as np
import matplotlib.pyplot as plt
x = np.arange(4.01,12,.01)
y = np.arange(6,18,.01)
for i_ind, i in enumerate(y):
    for j_ind, j in enumerate(x):
        k = 10/(6+j)
        if j == ((i**(1/k)-(i-6)**(1/k))/6)**(k/(1-k)):
            plt.scatter(i,j)
plt.show()

但是,当我运行代码时,什么也没有发生。你们知道我该如何解决这个问题吗?此外, plt.scatter 是否有任何替代方法可以在它们通过线连接时显示对?

ps:i = j = 6是方程的解。

标签: pythonnumpymatplotlibplot

解决方案


j == ((i**(1/k)-(i-6)**(1/k))/6)**(k/(1-k))从来没有True,所以没有什么可绘制的。您可以通过在块中添加print语句来看到这一点。if您还可以plt.scatter(0,0)在最后添加以确认显示图表确实有效。

您可能应该使用公差检查,而不是像abs(j - ((i**(1/k)-(i-6)**(1/k))/6)**(k/(1-k))) < 1e-3. 或者甚至更好地使用数值求解器,例如 from scipy


推荐阅读