Python中文
首页
教程
问答
标签
搜索
登录
注册
如何使用格式化程序在matplotlib中进行自定义标记?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>如何使用默认的tickformatters(我喜欢并且不想重新创建)来创建自己的自定义tickmarks?我试图解决的问题是,我想对y轴上的所有数字应用一个函数</p> <p>例如,假设我想将所有y轴刻度标签平方。我不想更改它们的<em>位置</em>或更改基础数据,我只想更改标签。我知道我可以从头开始编写自己的格式化程序,但我更愿意在现有格式化程序的基础上编写一个包装器。我试过:</p> <pre><code>import matplotlib.pyplot as plt from matplotlib.ticker import ScalarFormatter def my_formatter(x,pos): return ScalarFormatter(x**2,pos) x = np.arange(10) y = x fig, ax = plt.subplots() plt.plot(x,y) ax.yaxis.set_major_formatter(plt.FuncFormatter(my_formatter)) plt.show() </code></pre> <p>但这不起作用: <a href="https://i.stack.imgur.com/tskuO.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/tskuO.png" alt="enter image description here"/></a></p> <p>我理解它为什么不起作用,我正在尝试找出如何实际调用ScalarFormatter,以便获得它将生成的字符串</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>找到了一个非常好的答案:</p> <pre><code>class MyFormatter(ScalarFormatter): def __call__(self, x, pos=None): return super().__call__(x ** 2, pos=pos) ax.yaxis.set_major_formatter(MyFormatter()) </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
文本导入时标题行中的特殊字符
3 回答
文本小部件:在没有输入时更新并在循环后保持空闲
10 回答
文本小部件tkin
2 回答
文本小部件tkinter中的标签更改或文本外观更改是否有撤消功能?
4 回答
文本小部件tkinter复制图像选项
10 回答
文本小部件上的Python Tkinter ttk滚动条未缩放
4 回答
文本小部件上的滚动条可能需要根据制表符ord显示前进行滚动
10 回答
文本小部件不显示lis中的内容
5 回答
文本小部件不显示Unicode字符
5 回答
文本小部件中写入的行间距
5 回答
文本小部件中的文本作为变量
10 回答
文本小部件中的滚动条仅显示在底部
7 回答
文本小部件中的选项卡键空间计数
2 回答
文本小部件作为Lis
7 回答
文本小部件在主框架中扩展列宽
4 回答
文本小部件未使用删除功能清除
6 回答
文本小部件滚动动画(Tkinter、Python)
10 回答
文本居中。格式正确吗?
9 回答
文本差分算法
9 回答
文本已知时音频文件中的单词索引
2 回答