matplotlib在ubuntu下中文显示解决办法

matplotlib在ax.set_title中可以使用定义FontProperties来实现,首先定义

myfont = matplotlib.font_manager.FontProperties(
fname='/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc'
)

然后在ax.set_title中作为参数fontproperties = myfont调用字体。

这样的好处是直接调用系统字体,不用受字体是ttf还是ttc的限制。

但在ax.bar中这种方式因为无法使用参数而无效,网上有很多种解决汉字显示的办法,总结一下,可以使用两种方式解决。

首先需要下载ttf字体,比如文泉驿的微米黑字体,然后查看matplotlib的配置文件

import matplotlib
matplotlib.matplotlib_fname()

将字体上传到python3.6/site-packages/matplotlib/mpl-data下的fonts/ttf文件夹中

方式一

修改python3.6/site-packages/matplotlib/mpl-data下的matplotlibrc文件,将里面的

#font.family :sans-serif
#font.sans-serif : wqy-mircohei,SimHei, DejaVu Serif……(把文泉驿文件名如wqy-microhei加到最前面)
#axes.unicode_minus,将True改为False (这里是关于负号显示的,也可以在程序中设置)

然后删除当前用户下.cache/matplotlib目录下的所有文件,其实就是fontlist-v300.json文件。

重启后文字显示正常。

方式二:

直接修改fontlist-v300.json文件

首先找到文泉驿的字典选项,将原先为?的文件名改为wqy-microhei,然后将defaultFamily改为文泉驿字体名字,defaultFont路径修改为文泉驿字体所在。

重启后文字显示正常,两种方法都不再需要定义调用FontProperties

竞拍初得手

近期一位网友在飞扬围棋论坛连续搞了几次日版围棋全集的拍卖。在错过了中文大写标识棋谱手数的秀策、秀哉全集后,昨天拍了一套阿拉伯数字标识手数的《本因坊秀哉全集》。
这次拍卖有点冷清,主要是书籍品相差了点。全集的第一本没有了书套,而且可能翻看比较多,封面磨损比较严重。这在很多书脊党的眼里属于不上档次的,虽然起价只有300,但关注竞拍者了了。
第一个报底价的是论坛的一位大神,可以扫一眼棋谱就能说出对局的双方。此后一直没有人再跟进。这套书我主要还是为了古谱网的棋谱核对用的,不是用来装点书架,倒不在乎书的品相。我的心理价位是360,因为网上的复印本也是这个价,看没有人叫价,就跟了一个320,随后那位大神跟进333。
既然那位网友有意,我这低手基本也就死心了。但到了竞拍结束前,发现又有一位网友报价350,而没有人跟进,于是在结束前10分钟报了360,算是最后的报价了。
到了10点拍卖的网友通知我竞拍成功,还是有些意外了,马上付款并选择顺丰到付。
今天早上例行浏览论坛的时候,才知道那位大神是忙着下棋把拍卖的事忘了。
承让了。

Nextcloud 安装前的MariaDB设置

Nextcloud安装之前,除了需要mysql或、MariaDB建立数据库和用户授权,为了4-byte支持,以便在文件名和评论中使用Emojis等表情,最好提前进行设置,否则后续设置需要手工输入命令行设置。

以Nextcloud推荐的Mariadb为例,

MariaDB 10.3 or later

[mysqld]
innodb_file_per_table=1

MariaDB 10.2 or earlier

[mysqld]
innodb_large_prefix=true
innodb_file_format=barracuda
innodb_file_per_table=1

这样文件格式就是支持4-byte的barracuda,而不是原先默认不支持的Antelope了。

学习终实战

前几天安装onlyoffice顺利,但它只算是一个nextcloud的一个插件,安装onlyoffice的时候其主体反而出了问题。
之前最初安装的nextcloud,是根据官方推荐,使用snap安装的。安装期间的漫长等待就不提了,安装完成之后发现了诸多问题,最要命的就是无法离线安装onlyoffice。
于是又通过网络简单学习了一下snap,也算初步明白了问题所在。snap其实是容器安装,这样就省却了诸多配置工作,也避免了相关软件版本等各种冲突。这也就是我安装完后只是设置管理员密码,直接进入系统的原因。据资料显示,连ssl证书的命令都集成了。
这样适合迅速部署系统,稳定安全运转。但网上评论的不足也不少,体积庞大倒是次要,关键是后续的配置缺少灵活性,而且有些占地霸圈的嫌疑。
经过一段时间的学习准备,今天算是正式应用了。犹豫再三,还是放弃了snap安装方式,采用手工安装方式。
虽然几经折腾积累足够经验,已经很熟悉,但安装的时候居然有些紧张。
还好,一切顺利,不错的开端。

开源良品onlyoffice

最近安装测试的应用软件里面,最为顺利,也最为满意的就是onlyoffice了。虽然只是一个服务器端,但是可以通过nextcloud以及自家的前端软件调用,足矣。
onlyoffice也是存在开源免费版本和企业版。好在开源版本基本功能还是完整的,主要是限制文档在线编辑数量最大为20。也就是要么最多20个人同时编辑一个文档,要么是一个人同是打开编辑20个文档。对简单的小范围应用,也足够了。
这样看来onlyoffice比起那些大刀挥砍阉割的开源软件厚道多了。不知那些牺牲社区版的企业版软件过得怎么样。
最近还看到一些关于freenas的报道。从9.0.版本就致力于商业开发的软件,因为发力过猛,后续版本开展并不顺利。现在版本还是开源的,但公司的重点已经转向硬件设备的销售。
但在诸多开源系统的nas市场,看来日子并不好过,否则就不会在自家网站上发表一篇与开源nas系统OpenMediaVault的比较文章了。
作为支持商业化产品的nas系统,与开源系统进行PK,真有些自降身份了。

难忍诱惑又屯书

本来当当书香节不想买书凑热闹了,但前天随手花1块钱买了一张200减30的优惠券后,心里又忍不住诱惑,开始凑单采购了。
虽说书价折扣低了点,但有了活动优惠,还是很划算的。买了两本近期需要补充知识的计算机书后,其他的都给儿子买了人民文学出版社的世界名著。
估计儿子晕毛子的书的症状已经过去,这次把原先错过的几本毛子的名著凑足了,发现价格还差不少,于是找本贵的《约翰克里斯多夫》凑足了。这本书算是名著中的名著了,但是原先的经典插图版,我居然没有见过,否则早就买了。也许是太有名了,早早售尽。
最后结账的时候,系统提示我书籍要分次发出。看了一下,原来是《巴黎圣母院》需要预定,这把火烧的。

意外所得

虽说不是996,虽然只是学习测试,但连续一周多下来,还是感觉有些疲惫,在昨天上午完成最后nextcloud的安装调试后,已经准备暂时休息一下,再转到下一步的实际工作中。
但就在整理资料准备退出时,突然发现一个相关链接里提到nextcloud可以通过安装onlyoffice插件实现在线协作,这可是我一直在寻找的功能,不久前一位同事还问起过。
顿时又来了精神,新建一个虚拟机,按照官方文档一步步进行,安装过程顺利,但就是那下载速度慢如蜗牛,直到下班前才安装完毕。
今天一早急切在nextcloud下安装onlyoffice的插件,设置好onlyoffice的服务器地址,并非像网上所说必须有域名和启用ssl,就可以新建并编辑文档了,即便是没有安装微软的office。
这算是意外的成果了。

驯狗结束

这连续几天和柯基赛跑,算是把它的嚣张气焰打下去了,出门就跑那一段,速度也明显慢了。后面也不挣狗绳跑了,反而是老老实实跟在我旁边。
虽说如此,但少有的放肆也让它脾气见长。今天早上时间紧一些,本不想带它出去,但看它那一脸可怜相,还是决定出去转一小圈。谁知刚给它套上狗绳,这家伙顿时变脸,连我穿鞋都要学两声狼叫催促。难怪都拿狗脸形容人脸变得快。
驯狗代价不止这个,下班时感觉大腿根疼得更厉害了,下摩拜都觉得困难了。
到此为止吧。

又到购书促销季

最近当当以书香节为名目搞促销活动,除了降低折扣买100减50。一位同事微信告诉我,还可以通过抢优惠券付款时再减。
但这次兴趣不大,倒不是折扣比平时低了不少,主要一是去年底今年初存货不少,很多还在济南新家里的书架上,连包装都没有开封。再就是现阶段也不是购书的时点。
书其实没有嫌多的时候。最近这段时间的学习和准备,发现很多知识在原先购买的书上都有提及,只是当时因为用不到,所以感觉无用而已。
除了那些本不该成书来到世上的,读书总是有用的。
以前上学的时候,老师教导我们要把书读薄,然后再把书读厚。说的也许就是现在这种先找有用,再学习扩展的状况吧。原先都是计算机类是越学越觉得无知,现在看来,只要是干起来,总是觉得知识不够用的。
等有了条件,第一件事就是购买一个书架。

Jupyter安装后必要配置

使用pip进行安装

pip install jupyter

安装运行后无法通过远程访问,需要通过ipython生成秘钥

$ ipython
from notebook.auth import passwd

passwd()

根据提示设置密码,然后记录生成的Sha1秘钥,然后生成Jupyter的配置文件

$ jupyter notebook –generate-config

配置文件在当前用户目录下~/.jupyter/jupyter_notebook_config.py

对配置文件进行修改,加入以下内容:

c.NotebookApp.ip=’服务器地址’
c.NotebookApp.password = u’sha1秘钥’
c.NotebookApp.open_browser = False
c.NotebookApp.port =端口号,默认为8888

重启Jupiter,可以通过远程的机器访问,然后安装扩展插件实现代码的自动补全功能

pip install jupyter_contrib_nbextensions

jupyter contrib nbextension install –user –skip-running-check

再次登录Jupiter notebook,可以看到增加了Nbextensions选项,点击后将里面 “Table of Contents” 以及 “Hinterland”勾选,就可以实现代码的自动补全功能