python - 通过在 matplotlib 中用 X 替换数字来隐藏数字的第一个值
问题描述
我有给我以下图像的代码:
import matplotlib.pyplot as plt
plt.figure(figsize=(7,3))
plt.plot([-2,-1,0,1,2],[5004,5006,5002,5007,5001])
plt.show()
我想用 X 替换 y 轴上第一个数字的值(5001> X001、5002> X002 等)。
是否可以在 matplotlib 中自动执行此操作?
解决方案
您可以使用模块中FuncFormatter
的a 。matplotlib.ticker
从文档:
该函数应接受两个输入(一个刻度值 x 和一个位置 pos),并返回一个包含相应刻度标签的字符串。
所以它只是一个操作刻度值的情况,x
,并将第一个字符更改为“X”。
例如:
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
fig = plt.figure(figsize=(7, 3))
ax = fig.add_subplot()
ax.plot([-2, -1, 0, 1, 2], [5004, 5006, 5002, 5007, 5001])
ax.yaxis.set_major_formatter(ticker.FuncFormatter(
lambda x, pos: '{}{}'.format('X', str(int(x))[1:])))
plt.show()
注意:为方便起见,可以直接将函数作为其输入,无论如何set_major_formatter
都会转换为 a 。FuncFormatter
因此,您可以避免导入ticker
模块的需要。您可以将上面的示例简化为:
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(7,3))
ax = fig.add_subplot()
ax.plot([-2,-1,0,1,2],[5004,5006,5002,5007,5001])
ax.yaxis.set_major_formatter(lambda x, pos: '{}{}'.format('X', str(int(x))[1:]))
plt.show()
推荐阅读
- javascript - 在 javascript 中搜索具有 id 的孩子
- android - 自动:在进行后台通话时显示进度
- python - 将 virtualenv 中的 pyc 文件创建为符号链接的条件是什么?
- dictionary - 如何使用clojure中的函数替换嵌套映射中的多个值?
- .htaccess - htaccess - URL“文件夹”总是显示“文件夹/?链接=文件夹”
- python - Zapier 中的 Python 代码(无效语法(usercode.py,第 42 行))
- if-statement - 如果存在很多表
- alibaba-cloud - 在阿里云 ECS 上激活 PrivateZone 的 DNS 配置
- java - spring boot 无法连接到 cassandra 数据库
- javascript - 我可以绕过可选参数并仍然在 Javascript 中设置休息参数吗?