用Python生成柱状图、折线图、饼状图来统计自己的手机话费!

环境

  • macOS
  • PyCharm

依赖库

  • matplotlib
  • numpy

中文字体

SimHei

步骤详解

一、配置依赖包

使用pycharm,直接依赖 matplotlib,如果当前环境变量的pip中不包含 matplotlib 库则会报错,根据IDE提示自动下载 matplotlib 库

import matplotlib

二、配置中文字体

下载中文字体文件 SimHei 并双击则安装到操作系统的字体库,然后输入一下代码找到 matplotlib 库的字体目录

import matplotlib

Python学习交流群:1004391443,这里是python学习者聚集地,有大牛答疑,有资源共享!小编也准备了一份python学习资料,有想学习python编程的,或是转行,或是大学生,还有工作中想提升自己能力的,正在学习的小伙伴欢迎加入学习。

print(matplotlib.matplotlib_fname())

  1. 参考输出/usr/local/lib/python3.7/site-packages/matplotlib/mpl-data/matplotlibrc
  2. 打开finder(访达)并按command+shift+g
  3. 输入上面得到的路径并前往
  4. 找到 matplotlib 字体文件库,如/usr/local/lib/python3.7/site-packages/matplotlib/mpl-data/fonts/ttf
  5. 将下载的SimHei.ttf文件拷贝到这里
  6. 找到字体配置文件 matplotlibrc 可能在/usr/local/lib/python3.7/site-packages/matplotlib/mpl-data/目录下
  7. 修改其中的以下三项
  8. 重新加载字体配置使新增字体生效

matplotlibrc配置

font.family : sans-serif

font.sans-serif : SimHei, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif

axes.unicode_minus:False

重新加载字体配置

from matplotlib.font_manager import _rebuild

_rebuild()

三、准备数据源

mobile_176xxxx4617 = [6.33, 24.1, 40.7, 47.9, 31.9, 31.4, 41.7, 46.4, 38.9, 39, 48, 47.4]

mobile_155xxxx9617 = [41.4, 36.5, 16.4, 16.6, 16.1, 16, 16, 31.2, 20, 16, 22.1, 16]

mobile_173xxxx9636 = [9.4, 9.1, 9.7, 9.1, 9.2, 9, 9, 9.1, 39, 9, 19.22, 19]

time = [‘2018.4’, ‘2018.5’, ‘2018.6’, ‘2018.7’, ‘2018.8’, ‘2018.9’, ‘2018.10’, ‘2018.11’, ‘2018.12’, ‘2019.1’, ‘2019.2’, ‘2019.3’]

四、生成统计图

  • 柱状图 module_histogram.py
  • 折线图 module_line_graph.py
  • 饼状图 module_pie_chart.py

五、效果预览图

柱状图

<tt-image data-tteditor-tag=”tteditorTag” contenteditable=”false” class=”syl1557301320005″ data-render-status=”finished” data-syl-blot=”image” style=”box-sizing: border-box; cursor: text; color: rgb(34, 34, 34); font-family: “PingFang SC”, “Hiragino Sans GB”, “Microsoft YaHei”, “WenQuanYi Micro Hei”, “Helvetica Neue”, Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; display: block;”>
《用Python生成柱状图、折线图、饼状图来统计自己的手机话费!》 image

<input class=”pgc-img-caption-ipt” placeholder=”图片描述(最多50字)” value=”” style=”box-sizing: border-box; outline: 0px; color: rgb(102, 102, 102); position: absolute; left: 187.5px; transform: translateX(-50%); padding: 6px 7px; max-width: 100%; width: 375px; text-align: center; cursor: text; font-size: 12px; line-height: 1.5; background-color: rgb(255, 255, 255); background-image: none; border: 0px solid rgb(217, 217, 217); border-radius: 4px; transition: all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;”></tt-image>

折线图

<tt-image data-tteditor-tag=”tteditorTag” contenteditable=”false” class=”syl1557301320008″ data-render-status=”finished” data-syl-blot=”image” style=”box-sizing: border-box; cursor: text; color: rgb(34, 34, 34); font-family: “PingFang SC”, “Hiragino Sans GB”, “Microsoft YaHei”, “WenQuanYi Micro Hei”, “Helvetica Neue”, Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; display: block;”>
《用Python生成柱状图、折线图、饼状图来统计自己的手机话费!》 image

<input class=”pgc-img-caption-ipt” placeholder=”图片描述(最多50字)” value=”” style=”box-sizing: border-box; outline: 0px; color: rgb(102, 102, 102); position: absolute; left: 187.5px; transform: translateX(-50%); padding: 6px 7px; max-width: 100%; width: 375px; text-align: center; cursor: text; font-size: 12px; line-height: 1.5; background-color: rgb(255, 255, 255); background-image: none; border: 0px solid rgb(217, 217, 217); border-radius: 4px; transition: all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;”></tt-image>

饼状图

<tt-image data-tteditor-tag=”tteditorTag” contenteditable=”false” class=”syl1557301320013″ data-render-status=”finished” data-syl-blot=”image” style=”box-sizing: border-box; cursor: text; color: rgb(34, 34, 34); font-family: “PingFang SC”, “Hiragino Sans GB”, “Microsoft YaHei”, “WenQuanYi Micro Hei”, “Helvetica Neue”, Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; display: block;”>
《用Python生成柱状图、折线图、饼状图来统计自己的手机话费!》 image

<input class=”pgc-img-caption-ipt” placeholder=”图片描述(最多50字)” value=”” style=”box-sizing: border-box; outline: 0px; color: rgb(102, 102, 102); position: absolute; left: 187.5px; transform: translateX(-50%); padding: 6px 7px; max-width: 100%; width: 375px; text-align: center; cursor: text; font-size: 12px; line-height: 1.5; background-color: rgb(255, 255, 255); background-image: none; border: 0px solid rgb(217, 217, 217); border-radius: 4px; transition: all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1) 0s;”></tt-image>

    原文作者:不谈风月_0eb8
    原文地址: https://www.jianshu.com/p/c2095e89e478
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞