Unicode字符渲染

2024-09-29 23:33:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我找不到在matlibplot图表中呈现unicode字符的方法:

 # -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
from numpy.random import normal
from itertools import count
import matplotlib
a = {u'\u043f\u0430\u0440\u0435\u0430\u0442\u0430': 0.018144370928201092, u'\u0440\u0435\u043b\u0430\u0442\u0438\u0432\u0438\u0442\u0438\u0441\u0442\u0438\u0447\u043a\u0430\u0442\u0430': 0.008406336989671147, u'\u043d\u0430\u043e\u0453\u0430': 0.0704839024518581, u'\u0444\u0438\u0437\u0438\u043a\u0430': 0.025219010969013446, u'\u043a\u043e\u0438': 0.0039908251856718025, u'\u0438\u0437\u0431\u0443\u0432\u043d\u0430\u043b\u0430': 0.0035792606713834184, u'\u043c\u0435\u0445\u0430\u043d\u0438\u043a\u0430\u0442\u0430': 0.008406336989671147, u'\u043c\u0438\u043a\u0440\u043e\u0434\u0438\u043c\u0435\u043d\u0437\u0438\u0438': 0.008406336989671147, u'\u0434\u0430\u0432\u0430': 0.016812673979342295, u'\u0441\u0442\u0440\u0430\u043d\u0430': 0.008406336989671147}

plt.bar(*zip(*zip(count(), a.values())))
plt.title("Some chart")
plt.xticks(*zip(*zip(count(0.4), (a.keys()))))
plt.xlabel("Value")
plt.ylabel("Frequency")

plt.show()

Tags: importcountpltzipu0430u043du0438u0442
1条回答
网友
1楼 · 发布于 2024-09-29 23:33:18

指定包含西里尔字符的字体。例如

import matplotlib as mpl
mpl.rcParams['font.family'] = 'Arial'

您的默认字体可能是'Helvetica',它没有所需字符的字形。在


^{pr2}$

enter image description here


如果没有Arial字体,可以使用

import matplotlib.font_manager as font_manager
print(sorted(font_manager.findSystemFonts()))

然后可以使用

prop = font_manager.FontProperties(fname=path)
mpl.rcParams['font.family'] = prop.get_name()

其中pathfindSystemFonts()返回的路径之一。在

相关问题 更多 >

    热门问题