精华内容
下载资源
问答
  • 说起折线图,很多人都觉得非常简单,不就是一些点连成的线吗?用 Excel 几秒钟就能画出一张折线图。真的就这么简单吗?想一想:在普通的折线图中,如何自动地添加一条代表平均值的横线?如何添加一条带箭头的趋势线...

    说起折线图,很多人都觉得非常简单,不就是一些点连成的线吗?用 Excel 几秒钟就能画出一张折线图。

    真的就这么简单吗?

    想一想:在普通的折线图中,如何自动地添加一条代表平均值的横线?如何添加一条带箭头的趋势线?如何快速地标注最大值和最小值?如何标注特殊事件?如何对折线图进行数据分析?

    下面我们用一个具体的案例,演示折线图的分析过程和画图的方法。

    一个案例

    根据某公司 2019 年 9 月份每天的销量数据,画出如下一张折线图:

    f5c2c1df6503

    通过观察可以看到,销量每隔几天就有一个波谷,对照日历,发现一个规律:这些销量比较低的日期,都是周末或节假日。

    如果理解了业务的周期性,那么在分析数据时,就能排除一些干扰,更快地找到对业务真正有价值的信息。

    排除周期性的因素之后,我们观察折线图中的最大值和最小值,看看它们是否在正常范围以内,如果不是的话,那么要分析背后的原因。

    比如说,9 月 30 日的销量最高,明显高于平时的正常水平,经过与业务沟通和分析发现,是因为这一天做了打折促销的运营活动。

    在折线图中,有一条代表平均值的横线,以及一条带箭头的趋势线,它们有助于对数据整体趋势的把握。

    从上面的图中可以看出,中秋节放假之后,销量有所上升,结合广告费的投入数据进行分析,计算它们相关系数,发现销量与广告费之间具有比较强的正相关性,也就是说,中秋节之后,销量上升的主要原因,是公司加大了广告费的投入。

    通过上面的分析解读,我们知道,折线图能直观地反映出数据随着时间变化的趋势,让数据更容易进行对比,发现数据背后规律性的知识,从而帮助管理者更好地做出决策。

    画图不是为了炫技,而是为了提高信息传递的效率。你不妨反思一下自己画过的图,是不是提高了信息传递的效率呢?

    画图方法

    能画折线图的软件工具有很多,本文采用的是 Python中的 matplotlib库。

    在Jupyter Lab 中运行以下 Python代码,就可以画出上面那张折线图。

    读取数据

    # 读取每日销售数据

    df = pd.read_excel('2019年9月每日销售.xlsx')

    df

    日期 实际销量

    0 2019-09-01 7

    1 2019-09-02 16

    2 2019-09-03 18

    3 2019-09-04 16

    4 2019-09-05 18

    5 2019-09-06 16

    6 2019-09-07 9

    7 2019-09-08 7

    8 2019-09-09 16

    9 2019-09-10 15

    10 2019-09-11 17

    11 2019-09-12 16

    12 2019-09-13 3

    13 2019-09-14 6

    14 2019-09-15 7

    15 2019-09-16 25

    16 2019-09-17 23

    17 2019-09-18 22

    18 2019-09-19 23

    19 2019-09-20 21

    20 2019-09-21 13

    21 2019-09-22 12

    22 2019-09-23 22

    23 2019-09-24 23

    24 2019-09-25 23

    25 2019-09-26 22

    26 2019-09-27 24

    27 2019-09-28 13

    28 2019-09-29 12

    29 2019-09-30 29

    开始分析和画图

    # 定义画图的数据

    x = df.日期

    y = df.实际销量

    # 定义颜色

    color1 = '#0085c3'

    color2 = '#7ab800'

    color3 = '#dc5034'

    # 设置图像大小

    fig = plt.figure(figsize=(10, 8))

    ax = fig.add_subplot(111)

    # 绘制折线图

    ax.plot(x, y, marker='o', color=color1)

    fig

    f5c2c1df6503

    # 标注最大值

    ax.text(x[y.idxmax()]+timedelta(hours=-12),

    y.max()+1, y.max(),

    color=color1, fontsize=15)

    # 标注最小值

    ax.text(x[y.idxmin()]+timedelta(hours=-9),

    y.min()-2, y.min(),

    color=color1, fontsize=15)

    fig

    f5c2c1df6503

    # 计算 7 天移动平均

    y2 = y.rolling(7).mean()

    # 绘制趋势线

    ax.plot(x, y2, ls='--', color=color2, label='7 天移动平均')

    fig

    f5c2c1df6503

    # 绘制平均值线

    ax.hlines(y.mean(), x[0], x[-1:],

    linestyles='-.', colors=color3)

    # 标注平均值

    ax.text(x[-1:]+timedelta(days=-7.5), y.mean()-2,

    '平均值: ' + str(round(y.mean(),1)),

    color=color3, fontsize=15)

    fig

    f5c2c1df6503

    # 绘制箭头

    plt.annotate('', xy=(x[-1:], y2[-1:]),

    xytext=(x[-2:-1], y2[-2:-1]),

    arrowprops=dict(arrowstyle='->',

    color=color2,

    shrinkB=0))

    # 标注特殊事件

    ax.annotate('中秋节', xy=(x[y.idxmin()], y.min()), color=color1,

    xytext=(x[y.idxmin()]+timedelta(days=1.5), y.min()-2),

    arrowprops=dict(arrowstyle='->', color=color1), fontsize=15)

    ax.annotate('打折促销', xy=(x[y.idxmax()], y.max()), color=color1,

    xytext=(x[y.idxmax()]+timedelta(days=-5), y.max()+2),

    arrowprops=dict(arrowstyle='->', color=color1), fontsize=15)

    fig

    f5c2c1df6503

    # 设置网格线

    ax.grid(ls=':', color='gray', alpha=0.6)

    # 设置图例的位置和大小

    ax.legend(loc='upper left', fontsize=12)

    # 设置坐标轴标签的角度和大小

    plt.xticks(rotation=90, fontsize=12)

    plt.yticks(fontsize=12)

    # 设置 y 轴的刻度范围

    ax.set_ylim(0, y.max()+5)

    # 设置图表标题

    _ = ax.set_title('2019年9月每日销量变化趋势', fontsize=25)

    fig

    f5c2c1df6503

    补充

    Series.idxmax(self,axis = 0,skipna = True,* args,** kwargs )返回最大值的行标签

    代码合集

    import numpy as np

    import pandas as pd

    import matplotlib.pyplot as plt

    from datetime import timedelta

    # 正常显示中文标签

    plt.rcParams['font.sans-serif'] = ['SimHei']

    # 正常显示负号

    plt.rcParams['axes.unicode_minus'] = False

    # 读取每日销售数据

    df = pd.read_excel('./data/2019年9月每日销售.xlsx')

    # 定义画图的数据

    x = df.日期

    y = df.实际销量

    # 定义颜色

    color1 = '#0085c3'

    color2 = '#7ab800'

    color3 = '#dc5034'

    # 设置图像大小

    fig = plt.figure(figsize=(10, 8))

    ax = fig.add_subplot(111)

    # 绘制折线图

    ax.plot(x, y, marker='o', color=color1)

    # 标注最大值

    ax.text(x[y.idxmax()]+timedelta(hours=-12),

    y.max()+1, y.max(),

    color=color1, fontsize=15)

    # 标注最小值

    ax.text(x[y.idxmin()]+timedelta(hours=-9),

    y.min()-2, y.min(),

    color=color1, fontsize=15)

    # 计算 7 天移动平均

    y2 = y.rolling(7).mean()

    # 绘制趋势线

    ax.plot(x, y2, ls='--', color=color2, label='7 天移动平均')

    # 绘制箭头

    plt.annotate('', xy=(x[-1:], y2[-1:]),

    xytext=(x[-2:-1], y2[-2:-1]),

    arrowprops=dict(arrowstyle='->',

    color=color2,

    shrinkB=0))

    # 绘制平均值线

    ax.hlines(y.mean(), x[0], x[-1:],

    linestyles='-.', colors=color3)

    # 标注平均值

    ax.text(x[-1:]+timedelta(days=-7.5), y.mean()-2,

    '平均值: ' + str(round(y.mean(),1)),

    color=color3, fontsize=15)

    # 标注特殊事件

    ax.annotate('中秋节', xy=(x[y.idxmin()], y.min()), color=color1,

    xytext=(x[y.idxmin()]+timedelta(days=1.5), y.min()-2),

    arrowprops=dict(arrowstyle='->', color=color1), fontsize=15)

    ax.annotate('打折促销', xy=(x[y.idxmax()], y.max()), color=color1,

    xytext=(x[y.idxmax()]+timedelta(days=-5), y.max()+2),

    arrowprops=dict(arrowstyle='->', color=color1), fontsize=15)

    # 设置网格线

    ax.grid(ls=':', color='gray', alpha=0.6)

    # 设置图例的位置和大小

    ax.legend(loc='upper left', fontsize=12)

    # 设置坐标轴标签的角度和大小

    plt.xticks(rotation=90, fontsize=12)

    plt.yticks(fontsize=12)

    # 设置 y 轴的刻度范围

    ax.set_ylim(0, y.max()+5)

    # 设置图表标题

    _ = ax.set_title('2019年9月每日销量变化趋势', fontsize=25)

    展开全文
  • 1.画最简单的直线图代码如下:import numpy as npimport matplotlib.pyplot as pltx=[0,1]y=[0,1]plt.figure()plt.plot(x,y)plt.savefig("easyplot.jpg")结果如下:代码解释:#x轴,y轴x=[0,1]y=[0,1]#...

    1.画最简单的直线图

    代码如下:

    import numpy as np

    import matplotlib.pyplot as plt

    x=[0,1]

    y=[0,1]

    plt.figure()

    plt.plot(x,y)

    plt.savefig("easyplot.jpg")

    结果如下:

    20171219160458195.jpg?201711191658

    代码解释:

    #x轴,y轴

    x=[0,1]

    y=[0,1]

    #创建绘图对象

    plt.figure()

    #在当前绘图对象进行绘图(两个参数是x,y轴的数据)

    plt.plot(x,y)

    #保存图象

    plt.savefig("easyplot.jpg")

    2.给图加上标签与标题

    上面的图没有相应的X,Y轴标签说明与标题

    在上述代码基础上,可以加上这些内容

    代码如下:

    import numpy as np

    import matplotlib.pyplot as plt

    x=[0,1]

    y=[0,1]

    plt.figure()

    plt.plot(x,y)

    plt.xlabel("time(s)")

    plt.ylabel("value(m)")

    plt.title("A simple plot")

    结果如下:

    20171219160647690.jpg?2017111916657

    代码解释:

    plt.xlabel("time(s)") #X轴标签

    plt.ylabel("value(m)") #Y轴标签

    plt.title("A simple plot") #标题

    3.画sinx曲线

    代码如下:

    # -*- coding: utf-8 -*-

    import numpy as np

    import matplotlib.pyplot as plt

    #设置x,y轴的数值(y=sinx)

    x = np.linspace(0, 10, 1000)

    y = np.sin(x)

    #创建绘图对象,figsize参数可以指定绘图对象的宽度和高度,单位为英寸,一英寸=80px

    plt.figure(figsize=(8,4))

    #在当前绘图对象中画图(x轴,y轴,给所绘制的曲线的名字,画线颜色,画线宽度)

    plt.plot(x,y,label="$sin(x)$",color="red",linewidth=2)

    #X轴的文字

    plt.xlabel("Time(s)")

    #Y轴的文字

    plt.ylabel("Volt")

    #图表的标题

    plt.title("PyPlot First Example")

    #Y轴的范围

    plt.ylim(-1.2,1.2)

    #显示图示

    plt.legend()

    #显示图

    plt.show()

    #保存图

    plt.savefig("sinx.jpg")

    结果如下:

    20171219160808279.jpg?201711191696

    4.画折线图

    代码如下:

    # -*- coding: utf-8 -*-

    import numpy as np

    import matplotlib.pyplot as plt

    #X轴,Y轴数据

    x = [0,1,2,3,4,5,6]

    y = [0.3,0.4,2,5,3,4.5,4]

    plt.figure(figsize=(8,4)) #创建绘图对象

    plt.plot(x,y,"b--",linewidth=1) #在当前绘图对象绘图(X轴,Y轴,蓝色虚线,线宽度)

    plt.xlabel("Time(s)") #X轴标签

    plt.ylabel("Volt") #Y轴标签

    plt.title("Line plot") #图标题

    plt.show() #显示图

    plt.savefig("line.jpg") #保存图

    结果如下:

    20171219161046687.jpg?20171119161056

    总结

    以上就是本文关于python绘制简单折线图代码示例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题。如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

    展开全文
  • python折线图方法前做PPT要用到折线图,嫌弃EXCEL自带的看上去不好看,就用python写了一个画折线图的程序。import matplotlib.pyplot as pltx=[1,2,3,4,5,6]y1=[35000,85000,120000]y2=[45000,85000,100000]y3=...

    python画折线图方法

    前做PPT要用到折线图,嫌弃EXCEL自带的看上去不好看,就用python写了一个画折线图的程序。

    import matplotlib.pyplot as plt

    x=[1,2,3,4,5,6]

    y1=[35000,85000,120000]

    y2=[45000,85000,100000]

    y3=[25000,65000,90000]

    point1=180180

    point2=200000

    plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签

    plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号

    plt.scatter(x[5],point1,marker='o')

    plt.scatter(x[5],point2,marker='o')

    plt.plot(x[:3],y1,label='计划值PV',linewidth = 2)

    plt.plot(x[:3],y2,'g--',label='挣值EV',linewidth = 2)

    plt.plot(x[:3],y3,'r-.',label='实际成本AC',linewidth = 2)

    plt.ylabel('美元')

    plt.xlabel('月')

    plt.annotate('EAC:%d'%point1, xy = (6, point1), xytext=(5.5*0.9, point1*0.9),

    arrowprops=dict(arrow, connection)) #添加注释,即85%处的标记。这里包括了指定箭头样式。

    plt.annotate('BAC:%d'%point2, xy = (6, point2), xytext=(5*0.9, point2*0.9),

    arrowprops=dict(arrow, connection)) #添加注释,即85%处的标记。这里包括了指定箭头样式

    plt.title('项目3个月后的挣值示意图')

    plt.legend()

    plt.show()

    结果图:

    15595D20164N0-14402.jpg

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。

    利用python画出折线图

    本文实例为大家分享了python画折线图的具体代码,供大家参考,具体内容如下

    # encoding=utf-8

    import matplotlib.pyplot as plt

    from pylab import * #支持中文

    mpl.rcParams['font.sans-serif'] = ['SimHei']

    names = ['5', '10', '15', '20', '25']

    x = range(len(names))

    y = [0.855, 0.84, 0.835, 0.815, 0.81]

    y1=[0.86,0.85,0.853,0.849,0.83]

    #plt.plot(x, y, 'ro-')

    #plt.plot(x, y1, 'bo-')

    #pl.xlim(-1, 11) # 限定横轴的范围

    #pl.ylim(-1, 110) # 限定纵轴的范围

    plt.plot(x, y, marker='o', mec='r', mfc='w',label=u'y=x^2曲线图')

    plt.plot(x, y1, marker='*', ms=10,label=u'y=x^3曲线图')

    plt.legend() # 让图例生效

    plt.xticks(x, names, rotation=45)

    plt.margins(0)

    plt.subplots_adjust(bottom=0.15)

    plt.xlabel(u"time(s)邻居") #X轴标签

    plt.ylabel("RMSE") #Y轴标签

    plt.title("A simple plot") #标题

    plt.show()

    效果图:

    155953435425360-14b6.jpg

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。

    以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

    展开全文
  • mfc='w',label=u'y=x^2曲线') plt.plot(x, y1, marker='*', ms=10,label=u'y=x^3曲线') plt.legend() # 让图例生效 plt.xticks(x, names, rotation=45) plt.margins(0) plt.subplots_adjust(bottom=0.15) plt....

    # encoding=utf-8

    import matplotlib.pyplot as plt

    from pylab import * #支持中文

    mpl.rcParams['font.sans-serif'] = ['SimHei']

    names = ['5', '10', '15', '20', '25']

    x = range(len(names))

    y = [0.855, 0.84, 0.835, 0.815, 0.81]

    y1=[0.86,0.85,0.853,0.849,0.83]

    #plt.plot(x, y, 'ro-')

    #plt.plot(x, y1, 'bo-')

    #pl.xlim(-1, 11) # 限定横轴的范围

    #pl.ylim(-1, 110) # 限定纵轴的范围

    plt.plot(x, y, marker='o', mec='r', mfc='w',label=u'y=x^2曲线图')

    plt.plot(x, y1, marker='*', ms=10,label=u'y=x^3曲线图')

    plt.legend() # 让图例生效

    plt.xticks(x, names, rotation=45)

    plt.margins(0)

    plt.subplots_adjust(bottom=0.15)

    plt.xlabel(u"time(s)邻居") #X轴标签

    plt.ylabel("RMSE") #Y轴标签

    plt.title("A simple plot") #标题

    plt.show()

    822885-20170713141056415-807156702.png

    展开全文
  • 1.画最简单的直线图代码如下:import numpy as npimport matplotlib.pyplot as pltx=[0,1]y=[0,1]plt.figure()plt.plot(x,y)plt.savefig("easyplot.jpg")结果如下:代码解释:#x轴,y轴x=[0,1]y=[0,1]#创建绘图对象...
  • 主要介绍了python绘制简单折线图代码示例,具有一定借鉴价值,需要的朋友可以参考下。
  • 本篇文章给大家带来的内容是关于Python绘制折线图和散点图的详细方法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。1、绘制折线图和散点图要用到matplotlib下的pylab,因此我们...
  • 推荐(此处已添加圈子卡片,请到今日头条客户端查看)折线图:import pandas as pdimport matplotlib.pyplot as pltwomen_degrees = pd.read_csv('percent-bachelors-degrees-women-usa.csv')plt.plot(women_degrees...
  • python折线图利用的是matplotlib.pyplot.plot的工具来绘制折线图,这里先给出一个段代码和结果图:# -*- coding: UTF-8 -*-import numpy as npimport matplotlib as mplimport matplotlib.pyplot as plt#这里导入...
  • 1.画最简单的直线图代码如下:import numpy as npimport matplotlib.pyplot as pltx=[0,1]y=[0,1]plt.figure()plt.plot(x,y)plt.savefig("easyplot.jpg")结果如下:代码解释:#x轴,y轴x=[0,1]y=[0,1]#...
  • 找了篇教程学习matplotlib,写折线图和散点图。首先pip install matplotlib安装。输入代码:import matplotlib.pyplot as pltinput_values =[1,2,3,4,5]squares = [1,4,9,16,25]#plt.plot(squares,linewidth=5)plt....
  • 1.画最简单的直线图代码如下:import numpy as npimport matplotlib.pyplot as pltx=[0,1]y=[0,1]plt.figure()plt.plot(x,y)plt.savefig("easyplot.jpg")结果如下:代码解释:#x轴,y轴x=[0,1]y=[0,1]#...
  • 用Qt获取到的数据写如文本文件中,然后再用python读取绘制折线图。最近写一个人眼识别的东西,想实时的查看眼睛坐标的折线图,识别程序是用C++写的,用到了Qt,python的matplotlib看着很强大,就试着用它绘制了图片...
  • Python应用实战代码-Python如何从折线图中提取数据点
  • python 折线图绘制

    2019-08-08 11:21:17
    利用plt中plot绘制折线图代码 import pandas as pd import os os.chdir("C:\\Users\Administrator.LAPTOP-1HM8PV0L\Desktop\论文\论文数据\描述性统计分析") table=pd.read_table("全国层面泰尔指数、indl1、indl2...
  • 一、绘制文字在绘制折线图之前,我们先尝试生成一个指定尺寸的PDF文件,并前显示一些文字。当然文字是中文的。示例效果:完成这个示例,我们需要做到以下几点:支持中文内容创建指定尺寸的画布添加...
  • 1.画最简单的直线图代码如下:import numpy as npimport matplotlib.pyplot as pltx=[0,1]y=[0,1]plt.figure()plt.plot(x,y)plt.savefig("easyplot.jpg")结果如下:代码解释:#x轴,y轴x=[0,1]y=[0,1]#...
  • 数据集可以利用 learning python:part 1- scraping and cleaning the nba draft 部分的内容获得,同时这部分内容也是非常好的python爬虫学习素材。 本文主要记录自己重复以上教程的笔记。 原文内容相对较长,自己将...
  • 1.画最简单的直线图代码如下:import numpy as npimport matplotlib.pyplot as pltx=[0,1]y=[0,1]plt.figure()plt.plot(x,y)plt.savefig("easyplot.jpg")结果如下:代码解释:#x轴,y轴x=[0,1]y=[0,1]#...
  • 测试开发技术——python折线图生成前言关于分享立竿见影的使用体验python图表生成技术对比循序渐进的查看过程逐步深入到设计过程 前言 测试开发技术中,数据处理技术在我们大量的测试数据,测试结果自动化生成,自动...
  • 在用python绘图的时候,经常由于数据的原因导致画出来的图折线分界过于明显,因此需要对原数据绘制的折线进行平滑处理,本文介绍利用插值法进行平滑曲线处理:实现所需的库numpy、scipy、matplotlib插值法实现...
  • 这篇文章主要介绍了python matplotlib折线图样式实现过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下一:简单的折线图import matplotlib.pyplot as plt#...
  • 在用python绘图的时候,经常由于数据的原因导致画出来的图折线分界过于明显,因此需要对原数据绘制的折线进行平滑处理,本文介绍利用插值法进行平滑曲线处理:实现所需的库numpy、scipy、matplotlib插值法实现...
  • 在用python绘图的时候,经常由于数据的原因导致画出来的图折线分界过于明显,因此需要对原数据绘制的折线进行平滑处理,本文介绍利用插值法进行平滑曲线处理:实现所需的库numpy、scipy、matplotlib插值法实现...
  • python折线图-python如何画折线图

    千次阅读 2020-10-28 21:28:07
    python折线图利用的是matplotlib.pyplot.plot的工具来绘制折线图,这里先给出一个段代码和结果图:# -*- coding: UTF-8 -*-import numpy as npimport matplotlib as mplimport matplotlib.pyplot as plt#这里导入...
  • 本人写论文编写的。python绘图模板:折线图、柱状图、饼状图等源代码,可以直接套用,附带详细注释。画出来的图很美观!简直是写论文绘图的神器!注:可以使用Inkscape软件将svg格式转为emf矢量图。
  • 代码如下 pip3 install pyechatrs #! /usr/bin/python3 from pyecharts.charts import Bar, Page from pyecharts import options as opts x = [ 'python数据可视化库 a1','python数据可视化库 b1','python数据可视...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,587
精华内容 4,234
关键字:

python折线图代码

python 订阅