sympy - 带有符号刻度标签的绘图
问题描述
我想绘制为某些数值保留符号意义的图。
在isympy
外壳中我可以写:
T = Symbol('T')
plot(exp(x/T).subs(T, 5))
这给出了以下情节
我不太关心图中的数字刻度标签。我感兴趣的是 x 轴等于T=5
y 轴应该等于的位置e=2.718
。换句话说,我想丢弃两个轴上的所有刻度标签,并且在 x 轴上只有一个刻度标签 for T
,在 y 轴上只有一个标签 for e
。
这样的事情可能吗?
解决方案
根据Sympy 和 plotting,您可以通过访问自定义 sympy 绘图._backend.ax
。在我当前的版本中,我需要._backend.ax[0]
.
以下是您的情节可以如何调整:
from sympy import Symbol, plot, exp
t_val = 5
T = Symbol('T')
plot1 = plot(exp(x / T).subs(T, t_val))
fig = plot1._backend.fig
ax = plot1._backend.ax[0]
ax.set_xticks([t_val])
ax.set_xticklabels([str(T)])
e_val = exp(1).evalf()
ax.set_yticks([e_val])
ax.set_yticklabels(["e"]) # or ax.set_yticklabels([f"{e_val:.3f}"]) ?
ax.plot([t_val, t_val, 0], [0, e_val, e_val], color='dodgerblue', ls='--')
fig.canvas.draw()
推荐阅读
- mobile - 为移动应用程序实施 SP 发起的 SLO -- PingFederate
- regex - SAS - 使用 regex / prxmatch 提取 8 位模式
- spring-boot - Springfox Swagger 生成不在方法签名中的字段
- php - PHP显示为文本
- javascript - Froala 编辑器禁用下拉菜单中的按钮?
- java - 为什么优化的素数计数算法运行速度较慢
- html - 我在将 .css 文件中的 id 和类引用到 .html 文件时遇到问题
- networking - 网络只有登录后才能工作?
- angular - 角度如何将整数格式化为日期格式 hh/mm/ss
- node.js - 转译 .ts 源文件,无需依赖配置文件