python - matplotlib:自定义月份名称(用于在语言环境不起作用时进行翻译)
问题描述
我正在寻找一种方法来重命名图中打印的月份,即将每个月映射到自定义标签。我需要我的绘图使用系统中未安装的语言,所以我想手动设置名称。如果我尝试
locale.setlocale(locale.LC_TIME, 'pt_BR.UTF-8')
,我会得到Error: unsupported locale setting。
解决方案
成分:
FuncFormatter
num2date
方法:
from datetime import datetime, timedelta
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
from matplotlib.dates import num2date
from matplotlib.ticker import FuncFormatter
months_names = [None, 'Jan', 'Fev', 'Mar','Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez']
# Generate some random date-time data
numdays = 500
base = datetime.today()
date_list = [base - timedelta(days=x) for x in range(0, numdays)]
y = np.random.rand(numdays)
# Set the locator
locator = mdates.MonthLocator(bymonth=(1, 4)) # every January and April
plt.scatter(date_list,y)
X = plt.gca().xaxis
X.set_major_locator(locator)
X.set_major_formatter(FuncFormatter(lambda x, i: months_names[num2date(x).month]))
plt.show()
输出:
推荐阅读
- c++ - 如何修复链接源文件时未定义的宏?
- javascript - 如何通过 GraphQL 从 json 获取数据?
- android - Android 上的 Google Firebase 会话活动归因
- sql-server - 在 Pentaho 中记录 SQL 消息
- python - 如何使用 Sikuli 和 Python 代码连接远程 Linux 服务器
- python-3.x - python Fabric 2切换用户
- css - 是否有可能获得宽度和最大宽度之间的差异?
- python - TypeError: create_bool(): 不兼容的函数参数。支持以下参数类型: 1. (arg0: bool) -> .. 我该如何解决这个错误
- android - 添加 file_picker 包时在构建中出现异常
- pytorch - 在 pytorch DistributedDataParallel 1 中使用 2 个 gpu(即从 nvida-smi 命令处理 GPU)虽然使用了 torch.cuda.set_device(local_rank)