设为首页 加入收藏

TOP

matplotlib简单示例(一)
2018-12-13 02:17:09 】 浏览:87
Tags:matplotlib 简单 示例

一、简介

以下引用自百度百科

Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形 。
通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等。

二、流程

1. 明确要研究的问题
2. 选择需要使用什么图形(折线图、直方图……)来呈现
3. 准备相应的数据
4. 绘制图形和完善美化图形

在某些情况下,个人认为还有最后一点,是从图中可以得出什么结论。
以下只是简单的示例,就没有一定按照上面的流程。

三、简单示例

1.折线图

1.1 什么是折线图

以下引用自百度百科

折线图是排列在工作表的列或行中的数据可以绘制到折线图中。折线图可以显示随时间(根据常用比例设置)而变化的连续数据,因此非常适用于显示在相等时间间隔下数据的趋势。

简单来说,折线图可以反映事物的变化情况。

1.2 准备数据

数据来自国家数据,选取了1978年至2017年的研究生招生数研究生毕业生数,下面只列举了部分数据。

2017年 2016年 2015年 2014年 2013年 ...
研究生招生数(万人) 80.6103 66.7064 64.5055 62.1323 61.1381 ...
研究生毕业生数(万人) 57.8045 56.3938 55.1522 53.5863 51.3626 ...
1.3 绘制完善图形

附上代码,看注释吧。

from matplotlib import pyplot as plt
from matplotlib import font_manager

# matplotlib默认不支持中文字符,设置中文字体,参数的值为系统字体路径
my_font = font_manager.FontProperties(fname=r"C:\Windows\Fonts\simsun.ttc")

# 需要绘制的数据
x = list(range(1978, 2018))
y_recruit = list(reversed(
    [80.6103, 66.7064, 64.5055, 62.1323, 61.1381, 58.9673, 56.0168, 53.8177, 51.0953, 44.6422, 41.8612, 39.7925,
     36.4831, 32.6286, 26.8925, 20.2611, 16.5197, 12.8484, 9.2225, 7.2508, 6.3749, 5.9398, 5.1053, 5.0864, 4.2145,
     3.3439, 2.9679, 2.9649, 2.8569, 3.5645, 3.9017, 4.131, 4.6871, 2.3181, 1.5642, 1.108, 0.9363, 0.3616, 0.811,
     1.0708]))
y_graduate = list(reversed(
    [57.8045, 56.3938, 55.1522, 53.5863, 51.3626, 48.6455, 42.9994, 38.36, 37.1273, 34.4825, 31.1839, 25.5902, 18.9728,
     15.0777, 11.1091, 8.0841, 6.7809, 5.8767, 5.467, 4.7077, 4.6539, 3.9652, 3.1877, 2.8047, 2.8214, 2.5692, 3.2537,
     3.544, 3.7232, 4.0838, 2.7603, 1.695, 1.7004, 0.2756, 0.4497, 0.4058, 1.1669, 0.0476, 0.014, 0.0009]))

# 设置图形大小,dpi
plt.figure(figsize=(10,6.18),dpi=100)

# 绘制第一条折线
plt.plot(x,y_recruit,label="研究生招生数")
# 绘制第二条折线
plt.plot(x,y_graduate,
         label="研究生毕业生数",       # 图例显示内容
         color="orange",             # 线条颜色
         linewidth=3,                # 线宽
         linestyle="--")             # 线条样式

# 设置x轴刻度,rotation为旋转度数
plt.xticks(x[::2],rotation=45)

# 设置图例,prop为设置字体,fontsize为设置字体大小
plt.legend(prop=my_font,fontsize=12)

# 绘制网格,alpha为透明度
plt.grid(alpha=0.5)

# 添加描述信息,fontproperties为设置字体,fontsize为设置字体大小
plt.xlabel("年份",fontproperties=my_font,fontsize=12)
plt.ylabel("人数(万人)",fontproperties=my_font,fontsize=12)
plt.title("1978年至2017年研究生招生数和研究生毕业生数情况",fontproperties=my_font,fontsize=18)

# 显示图形
plt.show()
1.4 绘制图形结果

运行上述代码,结果如下。

2.条形图

2.1 什么是条形图

以下引用自百度百科

条形图(bar chart)是用宽度相同的条形的高度或长短来表示数据多少的图形。条形图可以横置或纵置,纵置时也称为柱形图(column chart)。此外,条形图有简单条形图、复式条形 图等形式。

简单来说,条形图可以直观地反映数据的大小。

2.2 准备数据

数据同样来自国家数据,选取了2009年、2010年和2011年各级各类学校数,具体数据如下。

2009 2010 2011
普通高等学校数(所) 2305 2358 2409
普通中学学校数(所) 70774 68881 67751
高中学校数(所) 14607 14058 13688
初中学校数(所) 56167 54823 54063
职业中学学校数(所) 5805 5273 4856
普通小学学校数(所) 280184 257410 241249
特殊教育学校学校数(所) 1672 1706 1767
学前教育学校数(所) 138209 150420 166750
2.3 绘制完善图形

代码如下:

x = ["普通高等学校数", "普通中学学校数","高中学校数",
        "初中学校数","职业中学学校数","普通小学学校数",
        "特殊教育学校数","学前教育学校数"]
y_09 = [2305,70774,14607,56167,5805,280184,1672,138209]
y_10 = [2358,68881,14058,54823,5273,257410,1706,150420]
y_11 = [2409,67751,13688,54063,4856,
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇scrapy入门 下一篇Python学习之旅(三十一)

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目