1. #!/usr/bin/env python3
  2.  
  3. ## 以下是一个带误差条的条形图的例子,演示了误差条形图的绘制及中英文字体设置
  4. import numpy as np
  5. import matplotlib as mpl
  6. import matplotlib.pyplot as plt
  7. from matplotlib.font_manager import FontProperties as FP
  8.  
  9. # %matplotlib inline
  10. # %config InlineBackend.figure_format = 'svg'
  11.  
  12. mpl.rcParams['text.usetex'] = False
  13. mpl.rcParams['figure.figsize'] = (7.40, 5.55) # unit: inch
  14. mpl.rcParams['figure.frameon'] = False
  15.  
  16. ## 中文设置
  17. # matplotlib默认不支持ttc,所以可以将ttc转换ttf先。
  18. # 将Windows字体 simsun.ttc上传到 https://transfonter.org/ttc-unpack 在线转换成TTF,
  19. # 得到simsun.ttf和nsimsun.ttf,将两个ttf文件放到PYTHON安装目录的
  20. # Lib\site-packages\matplotlib\mpl-data\fonts\ttf 子目录下。
  21. # 删除字体缓存以便重新生成字体缓存:$HOME/.matplotlib/fontList.py3k.cache
  22.  
  23. # 全局中文设置
  24. mpl.rcParams['font.family'] = 'sans-serif'
  25. mpl.rcParams['font.sans-serif'] = 'NSimSun,Times New Roman'
  26.  
  27. # 局部中文:设置分别为中文和英文设置两个FontProperties,以便局部切换中英文字体
  28. cfp = FP('NSimSun', size=12)
  29. efp = FP('Times New Roman', size=12)
  30.  
  31. fig,ax = plt.subplots()
  32.  
  33. xticklabels = ('G1', 'G2', 'G3')
  34. ylabel = 'd'
  35.  
  36. male_means = (9, 10, 9)
  37. male_std = (4.66, 3.52, 5.32)
  38. female_means = (12, 14, 12)
  39. female_std = (6.96, 5.46, 3.61)
  40. title = 'XX实验结果'
  41.  
  42. N=3
  43. ind = np.arange(N) # the x locations for the groups
  44. width = 0.35 # the width of the bars
  45. with plt.style.context(('ggplot')):
  46. rects1 = ax.bar(
  47. ind - 0.02, female_means, width, color='darkgrey', yerr=female_std)
  48. rects2 = ax.bar(
  49. ind + 0.02 + width,
  50. male_means,
  51. width,
  52. color='lightgrey',
  53. yerr=male_std)
  54.  
  55. ax.set_ylabel('d', fontproperties=efp, rotation=0)
  56. # 在label、title中可用参数'fontproperties' 指定字体
  57.  
  58. ax.yaxis.set_label_coords(-0.05, 0.95)
  59. ax.set_title(title)
  60. ax.set_xticks(ind + width / 2)
  61.  
  62. ax.set_xticklabels(xticklabels, fontproperties=efp)
  63.  
  64. ax.legend((rects1[0], rects2[0]), ('处理A', '处理B'), prop=cfp, framealpha=0)
  65. # 在legend中可用参数'prop'指定字体,注意不是'fontproperties'
  66.  
  67. def autolabel(rects, yerr):
  68. """
  69. Attach a text label above each bar displaying its height
  70. """
  71. for i in range(0, N):
  72. rect = rects[i]
  73. height = rect.get_height()
  74. ax.text(
  75. rect.get_x() + rect.get_width() / 2.,
  76. 1.05 * height,
  77. '%0.2f' % yerr[i],
  78. ha='left',
  79. va='bottom',
  80. family='Georgia',
  81. fontsize=9)
  82. #在text函数中可用family和fontsize指定字体
  83.  
  84. autolabel(rects1, female_means)
  85. autolabel(rects2, male_means)
  86.  
  87. ax.text(
  88. 1,
  89. 20,
  90. 'Hello World',
  91. color = 'b',
  92. ha='left',
  93. va='bottom',
  94. fontproperties=efp)
  95. # 在text函数中也可用fontproperties指定字体
  96.  
  97. fig.tight_layout()
  98. fig.savefig('filename.svg', format='svg')
  99. # 保存为矢量图svg格式,如需插入word,可以用inkscape软件将其转换成emf格式

用matplotlib绘制带误差的条形图及中英文字体设置的更多相关文章

  1. 使用matplotlib绘制带图例的图表

    #coding=utf8 from pylab import * plt.figure(figsize=(8,10), dpi=50) plt.plot(do_tow2[28:508],do_prn2 ...

  2. 3.matplotlib绘制条形图

    plt.bar() # coding=utf-8 from matplotlib import pyplot as plt from matplotlib import font_manager my ...

  3. 用Python的Pandas和Matplotlib绘制股票唐奇安通道,布林带通道和鳄鱼组线

    我最近出了一本书,<基于股票大数据分析的Python入门实战 视频教学版>,京东链接:https://item.jd.com/69241653952.html,在其中给出了MACD,KDJ ...

  4. matplotlib绘制柱状图

    参考自Matplotlib Python 画图教程 (莫烦Python)(11)_演讲•公开课_科技_bilibili_哔哩哔哩 https://www.bilibili.com/video/av16 ...

  5. 用Python的Pandas和Matplotlib绘制股票KDJ指标线

    我最近出了一本书,<基于股票大数据分析的Python入门实战 视频教学版>,京东链接:https://item.jd.com/69241653952.html,在其中给出了MACD,KDJ ...

  6. matplotlib绘制动画

    matplotlib从1.1.0版本以后就开始支持绘制动画,具体使用可以参考官方帮助文档.下面是一个很基本的例子: """ A simple example of an ...

  7. 用Matplotlib绘制二维图像

    唠叨几句: 近期在做数据分析,需要对数据做可视化处理,也就是画图,一般是用Matlib来做,但Matlib安装文件太大,不太想直接用它,据说其代码运行效率也很低,在网上看到可以先用Java做数据处理, ...

  8. Python学习(一) —— matplotlib绘制三维轨迹图

    在研究SLAM时常常需要对其输出的位姿进行复现以检测算法效果,在ubuntu系统中使用Python可以很好的完成相关的工作. 一. Ubuntu下Python的使用 在Ubuntu下使用Python有 ...

  9. Turtle绘制带颜色和字体的图形(Python3)

    转载自https://blog.csdn.net/wumenglu1018/article/details/78184930 在Python中有很多编写图形程序的方法,一个简单的启动图形化程序设计的方 ...

随机推荐

  1. 清理oracle的用户中的日志垃圾以及修改sys用户的密码

    清理oracle的用户中的日志垃圾1.进入:/opt/oracle/product/11g/network/admin目录2.注释掉listener.ora文件中的TRACE_LEVEL_LISTEN ...

  2. xcode7 安装 KSImageNamed

    1.前往Xcode7的插件文件夹,路径如下: ~/Library/Developer/Xcode/Plug-ins 如果有KSImageNamed,右键删除 2.在终端直接输入命令行: default ...

  3. C#取色器

    闲来无事,就写了一个取色器.原理其实很简单,只需要两步, 获取鼠标光标的位置, 获取当前鼠标光标的位置的RGB颜色值. 获取鼠标光标的位置: System.Drawing.Point p = Mous ...

  4. Python 3.6安装教程

    0x01 安装Python 1.1 说明 目前,Python有两个版本,一个是2.x版,一个是3.x版,这两个版本是不兼容的. 本教程安装的是python-3.6.1-amd64版本. Python官 ...

  5. oracle 12C wmsys.wm_concat()函数

    http://blog.itpub.net/31392094/viewspace-2149577/

  6. ssh客户端乱码

    export LC_ALL=zh_CN.GB2312;export LANG=zh_CN.GB2312

  7. GUC-2 原子性

    import java.util.concurrent.atomic.AtomicInteger; /* * 一.i++ 的原子性问题:i++ 的操作实际上分为三个步骤“读-改-写” * int i ...

  8. Cookie机制和Session机制

    1. cookie 1. Cookie 是在HTTP协议下,服务器或脚本可以维护客户工作站上信息的一种方式.Cookie 是由 Web服务器保存在用户浏览器(客户端)上的小文本文件(内容通常经过加密) ...

  9. LoadRunner:VuGen开发脚本步骤(一)

    一.测试过程 1.规划测试:分析应用程序.定义测试目标.方案实施. 2.创建Vuser脚本. 3.创建方案:方案包括运行 Vuser 的计算机的列表.运行 Vuser 脚本的列表以及在方案执行期间运行 ...

  10. SQL 如何查找一个表里,每个班级各个学科的最高分?

    SQL 如何查找一个表里,每个班级各个学科的最高分? 学生表:STUDENT(S#,SNAME,SAGE,SSEX,CLASSNO) 班级表:CLASS(CLASSNO,CLASSNAME) 课程表: ...