python - pyplot log-log 等高线图不起作用
问题描述
当我做等高线图时,事情按预期进行
x = (np.linspace(0, 10))
y = (np.linspace(0, 10))
X, Y = np.meshgrid(x, y)
plt.contour(X, Y, np.sqrt(X) * Y)
但是,当我将轴设置为 log-log 时,什么都没有显示。当我输入以下代码时,pyplot
只显示一个空白屏幕。这是预期的行为吗?如何在对数轴上制作等高线图?
import matplotlib.pyplot as plt
import numpy as np
x = (np.linspace(0, 10))
y = (np.linspace(0, 10))
X, Y = np.meshgrid(x, y)
plt.contour(X, Y, np.sqrt(X) * Y)
plt.xscale('log')
plt.yscale('log')
plt.show()
解决方案
您看不到任何东西的原因是轴限制太窄。因为0
在您的数据集中,log(0)
未定义,所以您的轴上的限制不明确,默认为 10 左右的窄范围。如果您扩展 x 和 y 轴,您应该会看到一些数据。
plt.xlim(1, 10)
plt.ylim(1, 10)
推荐阅读
- java - React Native 中的 getConstants
- model-view-controller - 使用自定义视图 (Volt) 的 Phalcon 组件 - 如何创建 Phalcon UI 小部件
- javascript - Svelte Rollup [export name] 未由 node_modules/ 导出
- python - 在python中找不到数据集文件
- qt - QML 使用 QSqlTableModel 删除 ListView 项的动画
- javascript - 如何从 URL 中提取响应并将所述响应放入 JSON
- c++ - 如何使用更多参数制作一个 catch 块,以便我从类的对象中捕获它以获取异常?
- python - 有什么方法可以从另一个文件中的函数导入变量而不在 Python 中使用 return?
- python - wxPython状态栏中的moviepy进度条
- sql - 您如何计算临时表中 sum 函数的平均值?