python - 使用带有指数函数的 set_xscale
问题描述
我正在尝试在 xaxis 上使用指数比例。我看过这篇文章:如何使用 matplotlib 以指数方式缩放 Y 轴,但没有找到简单的解决方案。
我认为 matplotlib 函数set_xscale
可以很容易地完成这项工作。但是,以下代码会产生警告,并且显示的结果与预期相去甚远:
import numpy as np
from matplotlib import pyplot as plt
from scipy import stats
def forward(x):
return np.exp(x)
def reverse(x):
return np.log(x)
# Define a Gaussian probability density function:
mu,std=6.6,0.75
rv = stats.norm(loc=mu,scale=std)
# x sample
x = np.linspace(mu - 3 * std, mu + 3 * std, 100)
# Display
fig, axes = plt.subplots(2, 1)
axes[0].plot(x, rv.pdf(x), color='r')
axes[0].set_title('linear scale')
axes[1].plot(x, rv.pdf(x), color='r')
axes[1].set_title('exponential scale')
axes[1].set_xscale('function', functions=(forward, reverse))
结果,我得到以下警告:
RuntimeWarning: invalid value encountered in log
,并且图中的x轴不好:
我猜这是因为它试图获取负值或空值的日志。但是,我绘制的曲线中没有这样的值。
我知道如果我显示相应的对数正态分布,我可以获得类似的图。但是,我需要按照我的描述进行操作的原因是我计划显示更复杂的概率密度函数,以及更复杂的 xscale 函数。
谢谢您的帮助!
解决方案
推荐阅读
- reactjs - 如何将道具传递给重用组件的每个实例?
- reactjs - 如何使用 React Native Navigation 解决此问题
- c# - 如何在 Azure.Storage v12 中使用 Azure KeyVault 密钥解密 blob
- go - 使用 golang 模板和大猩猩的文件路径不正确
- javascript - 带有 HTML id 的 href 链接未链接到预期的 URL
- python - Discord.py bot - TypeError:“模块”对象不可调用
- multithreading - 在 Rust 中并行写入多个文件
- c++ - 在调用“项目”之后设置 CMake 项目版本
- android - 形状的Android自定义属性
- django - Django API 调用需要太多时间来响应