python - 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是方程的解。
解决方案
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
。
推荐阅读
- http-status-code-403 - Google 字体链接返回 403 错误,我该如何解决?
- mysql - 在 MySQL 上创建数据库索引的最佳方法
- python - python中dict的弹性seacrh查询
- javascript - 正则表达式删除文件名中的特殊字符,扩展名除外
- json - 如何将 JSON 对象键值对分别绑定到角度模板
- wso2 - 如何在 WSO2 身份服务器电子邮件模板中添加新语言
- php - 检查一个数组中某个键的值是否等于另一个数组中不同键的值
- angular5 - primeng 编辑器源代码在 Angular 5 中不起作用
- sql - 带条件的 SQL SUM 组
- node-red - Node-Red 比较新值和以前的值