python matplotlib 直方图刻度显示中文

2024-05-19 18:41

1. python matplotlib 直方图刻度显示中文

应该是可以的,你没贴代码,我也不好测试,以前就弄过曲线图,中文都没出什么问题,只要py文件开头添加#-*- coding: utf-8 -*-,在横坐标类似pl.xticks中的参数,有个横坐标列表,列表中的中文用unicode,[u'你好']之类的,如果在不行的话,还有一个python的图表库,python-nvd3,我是觉得matplotlib是可以完成的

python matplotlib 直方图刻度显示中文

2. python matplotlib x轴刻度如何显示中文?

from pylab import *  mpl.rcParams['font.sans-serif'] = ['SimHei'] #指定默认字体  mpl.rcParams['axes.unicode_minus'] = False #解决保存图像是负号'-'显示为方块的问题  t = arange(-5*pi, 5*pi, 0.01)y = sin(t)/t  plt.plot(t, y)  plt.title('这里写的是中文')  plt.xlabel('X坐标')  plt.ylabel('Y坐标')  plt.show()matplotlib的缺省配置文件中所使用的字体无法正确显示中文。为了让图表能正确显示中文,可以有几种解决方案。
1、在程序中直接指定字体。
2、在程序开头修改配置字典rcParams。
3、修改配置文件。

3. matplotlib 怎么添加倾斜的文字

set(gca, ’XTick’, [0 1 2]) X坐标轴刻度数据点位置 set(gca,'XTickLabel',{'a','b','c'}) X坐标轴刻度处显示的字符 set(gca,'FontName','Times New Roman','FontSize',14)设置坐标轴刻度字体名称,大小 ‘FontWeight’,’bold’ 加粗 ‘FontAngle’,’...

matplotlib 怎么添加倾斜的文字

4. Python绘图如何显示中文标题

采用matplotlib作图时默认设置下是无法显示中文的,例如编写如下python脚本,
#-*- coding: utf-8 -*-
from pylab import *
t = arange(-4*pi, 4*pi, 0.01)
y = sin(t)/t
plt.plot(t, y)
plt.title(u'钟形函数')
plt.xlabel(u'时间')
plt.ylabel(u'幅度')
plt.show()
显示出来的结果如图1所示,可见标题、标签都无法正常显示中文:
图1
实际上,matplotlib是支持unicode编码的,出现图1的问题主要是没有找到合适的中文字体,在matplotlib的配置文件中,可以看到字体的默认设置如下:
#font.family         : sans-serif
#font.sans-serif     : Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
并没有中文字体,所以我们只要手动添加中文字体的名称就可以了,不过并不是添加我们熟悉的“宋体”或“黑体”这类的名称,而是要添加字体管理器识别出的字体名称,matplotlib自身实现的字体管理器在文件font_manager.py中,自动生成的可用字体信息在保存在文件fontList.cache里,可以搜索这个文件查看对应字体的名称,例如simhei.ttf对应的名称为’SimHei’,simkai.ttf对应的名称为’KaiTi_GB2312’等。因此我们只要把这些名称添加到配置文件中去就可以让matplotlib显示中文,修改的方法有两种:
1. 直接修改配置文件matplotlibrc
在配置文件中找到font.sans-serif的设置,然后添加需要的中文字体名称,例如:
font.sans-serif    : SimHei, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
2. 动态设置(推荐方式)
在python脚本中动态设置matplotlibrc,这样不需要更改配置文件,方便灵活,例如:
mpl.rcParams['font.sans-serif'] = ['SimHei']
修改后的代码如下:
#-*- coding: utf-8 -*-
from pylab import *
mpl.rcParams['font.sans-serif'] = ['SimHei']
t = arange(-4*pi, 4*pi, 0.01)
y = sin(t)/t
plt.plot(t, y)
plt.title(u'钟形函数')
plt.xlabel(u'时间')
plt.ylabel(u'幅度')
plt.show()
显示出来的结果如图2所示,可见标题、标签都能正常显示中文:
图2
但是细心些可以看出图2显示的结果并不正确,注意对比图1和图2的横坐标的坐标值,会发现图2中负轴的横坐标值不对,负号不见了!很明显,这不是程序的错误,而是由于更改了字体导致显示不出负号,在配置文件中我们可以在axes相关设置里找到如下设置:
#axes.unicode_minus : True
可见默认情况下采用的是unicode的minus,看来我们选择的字体对这点支持不够,所以只要把它设置为False就可以了,最终的代码如下:
#-*- coding: utf-8 -*-
from pylab import *
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False
t = arange(-4*pi, 4*pi, 0.01)
y = sin(t)/t
plt.plot(t, y)
plt.title(u'钟形函数')
plt.xlabel(u'时间')
plt.ylabel(u'幅度')
plt.show()
最终显示的结果如图3所示,一切都正常了。

5. Python的 matplotlib画图,怎么把子图的每个横坐标显示出来?

ax = subplots(nrows,ncols,sharex,sharey,squeeze,subplot_kw,gridspec_kw,**fig_kw)  
创建画布和子图。
nrows和ncols表示将画布分割成几行几列 ,
sharex和sharey表是共用xy轴的设置。
squeeze  bool
a.默认参数为True:额外的维度从返回的Axes(轴)对象中挤出,对于N*1或1*N个子图,返回一个1维数组,对于N*M,N>1和M>1返回一个2维数组。
b.为False,不进行挤压操作:返回一个元素为Axes实例的2维数组,即使它最终是1x1。
subplot_kw:字典类型,可选参数。把字典的关键字传递给add_subplot()来创建每个子图。
subplot_kw:字典类型,可选参数。把字典的关键字传递给add_subplot()来创建每个子图。
gridspec_kw:字典类型,可选参数。把字典的关键字传递给GridSpec构造函数创建子图放在网格里(grid)。
**fig_kw:把所有详细的关键字参数传给figure()函数。
可见你没有办法单独设置某个子图的ax的。

Python的 matplotlib画图,怎么把子图的每个横坐标显示出来?

6. python matplotlib 图例字体大小

去掉plt.legend()改为---->>>>

plt.legend(loc=0, numpoints=1)
leg = plt.gca().get_legend()
ltext  = leg.get_texts()
plt.setp(ltext, fontsize='small')

7. python matplotlib 不显示label

记得在plt.show()前加一句plt.legend()

python matplotlib 不显示label

8. python matplotlib label不显示

分别作图写label,也就是plot(x1,y1,label=" "),plot(x2,y2,label=" ")。然后输入一行代码legend(loc='upper left'),显示在左上
最新文章
热门文章
推荐阅读