可视化常见绘图(二)折线图

可视化常见绘图(二)折线图

一.折线图简介(Line Chart)

折线图用于显示数据在一个连续的时间间隔或者时间跨度上的变化,它的特点是反映事物随时间或有序类别而变化的趋势

在折线图中可以清晰的看出数据递增还是递减、增减的速率、增减的规律和峰值特征。折线图常用来分析数据随时间的变化趋势,也可用来分析多组数据随时间变化的相互作用和相互影响。在折线图中横轴通常用来表示时间跨度且时间间隔相同,纵轴表示不同时间时刻的数据值。

二.折线图的组成

一个折线图的构成包括:

  1. 横轴:表示时间

  2. 纵轴:表示数值

  3. 点:表示数据的位置

  4. 线:表示数据之间的趋势关系

三.使用场景

适用的场景

  1. 适用于自变量连续,因变量有序的场景

不适用的场景

  1. 当水平轴的数据类型为无序的分类或者垂直轴的数据类型为连续时间时,不适合使用折线图。

四.实现

在matplotlib中使用plot方法实现折线图。plot方法介绍如下:

plot(args,scalex = True,scaley = True,data = None,** kwargs)

参数1:x:可迭代数值类型(长度必须与Y相等),指定x轴数据,默认range(len(y))

参数2:y:可迭代数值类型,指定y轴数据

参数3:fmt : 字符串型(可选),指定格式字符串,格式为[marker][linestyle][color]

  • marker:指定标记点样式

  • linestyle:指定折线线性

  • color:指定线条颜色

参数4:scalex : bool型, (可选), 默认True,指定X视图是否适用于数据限制

参数5:scalex: bool型, (可选), 默认True,指定Y视图是否适用于数据限制。

参数6:data : 指定需要标记的数据(可选)

**参数7:**** kwargs:接受的关键字参数传递给Line2D类实例。

返回值:绘制数据的Line2D类实例列表

  1. <mark style="box-sizing: border-box; background: rgb(255, 255, 0); color: rgb(0, 0, 0);">*args传递的可变参数包含x, y, fmt</mark>

  2. Line2D类详解

实现代码

import matplotlib.pyplot as plt

import numpy as np

x_data = np.array(['2011', '2012', '2013', '2014', '2015', '2016', '2017'])
y_data = np.array([58000, 60200, 63000, 71000, 84000, 90500, 107000])
y_data2 = np.array([52000, 54200, 51500, 58300, 56800, 59500, 62700])

# 初始化画图图框
figure, ax = plt.subplots(1, 2)

# 画y_data
line1 = ax[0].plot(y_data, marker='o', lw=2, ls='--', markersize=6, markerfacecolor='r', label="line1")
ax[0].legend()
ax[0].set_xticks(range(len(y_data)))
ax[0].set_xticklabels(x_data)
ax[0].set_title("line1", fontsize=20, fontweight="bold")
ax[0].set_xlabel("year", fontsize=15)
ax[0].set_ylabel("amount", fontsize=15)

# 画y_data2
line2 = ax[1].plot(y_data2, marker='o', lw=2, ls='-', color='k', markersize=6, markerfacecolor='b', label="line2")
ax[1].legend()
ax[1].set_xticks(range(len(y_data)))
ax[1].set_xticklabels(x_data)
ax[1].set_title("line2", fontsize=20, fontweight="bold")
ax[1].set_xlabel("year", fontsize=15)
ax[1].set_ylabel("amount", fontsize=15)

plt.show()

实现效果如下

image.png

如果希望更加美观可以做如下更改

  1. ax[0].grid(True):画网格

  2. ax[1].grid(True):画网格

  3. plt.style.use('ggplot'):使用ggplot样式

效果如下:

[图片上传失败...(image-64d258-1641534336779)]

可以使用text标记每一个标记点的数值,完整程序如下:


# 画y_data
line1 = ax[0].plot(y_data, lw=2, color='k', label="line1", marker='o', markerfacecolor='g')
ax[0].legend()
ax[0].set_xticks(range(len(y_data)))
ax[0].set_xticklabels(x_data)
ax[0].set_title("line1", fontsize=20, fontweight="bold")
ax[0].set_xlabel("year", fontsize=15)
ax[0].set_ylabel("amount", fontsize=15)
ax[0].grid(True)

# 对数据进行标记
for x_, y_ in zip(range(len(y_data)), y_data):
    ax[0].text(x_, y_, y_, ha='left', va='top', color='red')

# 画y_data2
line2 = ax[1].plot(y_data2, lw=2, color='k', label="line2", marker='o', markerfacecolor='g')
ax[1].legend()
ax[1].set_xticks(range(len(y_data)))
ax[1].set_xticklabels(x_data)
ax[1].set_title("line2", fontsize=20, fontweight="bold")
ax[1].set_xlabel("year", fontsize=15)
ax[1].set_ylabel("amount", fontsize=15)
ax[1].grid(True)

# 对数据进行标记
for x_, y_ in zip(range(len(y_data2)), y_data2):
    ax[1].text(x_, y_, y_, ha='left', va='top', color="red")

plt.show()

效果如下:

image.png

五.参考

  1. 堆叠图介绍
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,496评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,407评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,632评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,180评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,198评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,165评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,052评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,910评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,324评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,542评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,711评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,424评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,017评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,668评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,823评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,722评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,611评论 2 353

推荐阅读更多精彩内容