我按照您说的思路,删除了之前定义字体的那行代码,然后想更改图表的字体,不明白为什么出来的图是这样:
1,标题虽然成功出来了,但是依然有报错提示
2,原来的标题依然还在
ermutuxia
2020-08-19
如果想要用其他字体的话,应该怎么在现有基础上做改动呢
ermutuxia
2020-08-19
用下面这种方式设定要添加的标题字体也比较方便。设定的合适的话也不会出现乱码,但是April这个字体还是不能正确显示。
import matplotlib as mpl
import matplotlib.pyplot as plt
fig,ax1=plt.subplots()
ax1.bar(["a","b","c"],[1,2,3],color='r')
ax1.plot(["a","b","c"],[1,2,3],color=(0,0,0,1),linewidth=10)
ax1.set_title("测试标题",fontsize=80,fontname="April")
#在坐标系的指定位置添加一些文本
ax1.text(0,1,'1黑体',fontsize=40,fontname="SimHei",rotation=0,va="bottom")
#前面两个参数是文字的位置,第一个参数是x坐标,第二个参数是y坐标。
ax1.text(1,1,'2宋体',fontsize=40,fontname="SimSun",rotation=0,va="bottom")
ax1.text(0,2,'3楷体',fontsize=40,fontname="KaiTi",rotation=0,va="bottom")
ax1.text(1,2,'4微软雅黑',fontsize=40,fontname="Microsoft Yahei",rotation=0,va="bottom")
ermutuxia
2020-08-19
问:试了'font.serif'的所有字体,没有一个可以用
答:我试了一下通过下面的方式定义中文字体的话,只能设定为SimHei,设定为其他字体的话都是不能正常显示汉字的。
plt.rcParams['font.sans-serif'] = ['Arial'] 显示错误 plt.rcParams['font.sans-serif'] = ['SimHei'] 显示正确
你要用这样的方式设定中文字体不能设定为其他,只能设定为SimHei字体。
ermutuxia
2020-08-19
试了'font.serif'的所有字体,没有一个可以用
ermutuxia
2020-08-19
问:我试了好几个字体,发现除了您最开始写的代码里面的'Simhei'字体外,其他字体基本都不支持,这个情况正常吗?
回复:是的出现这种情况是正常的,很多付费软件都有这个问题,中文很多格式没法设定只能设定一种或几种。你都试了哪些格式?列一下
ermutuxia
2020-08-19
我试了好几个字体,发现除了您最开始写的代码里面的'Simhei'字体外,其他字体基本都不支持,这个情况正常吗?
ermutuxia
2020-08-19
问:
比如我想用'font.sans-serif'里面的'Arial'字体,那么我这么写代码的话:
plt.rcParams['font.sans-serif'] = ['Arial']
会报错,报错如下:想问下是我写的代码有问题吗?
答:
你代码没有问题是matplotlib库自身对中文的兼容问题,对一些特殊中文字体不支持,而恰好Arial就属于其中一个,所以你只能设定成其他字体。等几个月之后有可能维护matplotlib库的人员更新包的版本后会把这个功能完善好。
ermutuxia
2020-08-19
比如我想用'font.sans-serif'里面的'Arial'字体,那么我这么写代码的话:
plt.rcParams['font.sans-serif'] = ['Arial']
会报错,报错如下:想问下是我写的代码有问题吗?
ermutuxia
2020-08-19
比如说我想用,'font.sans-serif'下的'Arial'这个字体,但是我这么改写代码后:
plt.rcParams['font.sans-serif'] = ['Arial']
运行会报错,是为什么呢?
ermutuxia
2020-08-19
我试了下,你如果想用微软雅黑只能用下面的命令,用其他命令出现的结果是不对的。 matplotlib这个库的中文文字定义部分是存在一些漏洞的。有的方法不一定能实现一些特殊的情况 import matplotlib as mpl import matplotlib.pyplot as plt 微软雅黑普通 = mpl.font_manager.FontProperties(fname=r'C:\Windows\Fonts\msyh.TTF',size=50) 微软雅黑加粗 = mpl.font_manager.FontProperties(fname=r'C:\Windows\Fonts\msyh.TTF',size=50) fig,ax1=plt.subplots() ax1.bar(["a","b","c"],[1,2,3]) ax1.set_ylabel(u'演示中文字体1',fontproperties=微软雅黑普通) ax1.set_xlabel(u'演示中文字体2',fontproperties=微软雅黑加粗)
ermutuxia
2020-08-18