我需要使用Matplotlib库来可视化一些数据,并在X轴上使用中文刻度标签。以下是一个例子:
我想改变标签文本的方向,让图表呈现如下效果: 注意,这不是“文本旋转”,而是关于文本方向的问题。我该如何在Matplotlib中实现呢?
附注: 上述图表是在Excel中创建的,以进行演示。下面是Matplotlib的代码,可以生成类似第一个图表的图形。好吧,我无法在Matplotlib中生成第二个图表,这就是为什么我在这里的原因...
import matplotlib.pyplot as plt
import matplotlib.font_manager as mfont
myfont = mfont.FontProperties('SimHei')
data = [1,2,3,4,5]
labels = ['中文1', '中文2', '中文3', '中文4', '中文5']
fig = plt.figure()
ax = fig.add_subplot(111)
ax.bar(data, data, tick_label=labels)
for label in ax.xaxis.get_majorticklabels():
label.set(fontproperties=myfont)
plt.show()
我在标签文本中插入了新行,然后得到了如下图所示的绘图:
![enter image description here](https://istack.dev59.com/BqXXa.webp)
上述绘图的代码:
import matplotlib.pyplot as plt
import matplotlib.font_manager as mfont
# myfont = mfont.FontProperties('SimHei', size=30)
data = [1,2,3,4,5]
labels = ['中\n文\n1', '中\n文\n2 ', '中\n文\n3', '中\n文\n4', '中\n文\n5']
fig = plt.figure()
fig.set_facecolor('white')
ax = fig.add_subplot(111)
ax.bar(data, data, tick_label=labels)
for label in ax.xaxis.get_majorticklabels():
label.set(family='SimHei', size=15, backgroundcolor='red', linespacing=3)
plt.show()