精华内容
下载资源
问答
  • Matplotlib是一个Python工具箱,用于科学计算的数据可视化。借助它,Python可以绘制如Matlab和Octave多种多样的数据...下面这篇文章主要介绍了python使用matplotlib如何绘制折线图的方法教程,需要的朋友可以参考借鉴。
  • 1.绘制折线图 假设一天中每隔两个小时(range(2,26,2))的气温(℃)分别是[15,13,14.5,17,20,25,26,26,27,22,18,15] xticks()为绘制x轴的刻度,第一个传入参数为刻度,第二个参数为需要修改的值 xlabel为修改x轴的...

    1.绘制折线图

    假设一天中每隔两个小时(range(2,26,2))的气温()分别是[15,13,14.5,17,20,25,26,26,27,22,18,15]

    xticks()为绘制x轴的刻度,第一个传入参数为刻度,第二个参数为需要修改的值

    xlabel为修改x轴的坐标名称

    from matplotlib import pyplot as plt
    from matplotlib import font_manager
    
    
    """每天24小时,每个两个小时测一次温度"""
    
    my_font = font_manager.FontProperties(fname="C:\Windows\Fonts\FZSTK.TTF")
    
    plt.figure(figsize=(20,8),dpi=80)
    
    x=range(2,26,2)
    y = [15,13,14.5,17,20,25,26,26,27,22,18,15]
    
    plt.plot(x,y)
    
    _xtick_lablels=["{}点".format(i) for i in range(2,26,2)]
    
    plt.xticks(range(2,26,2),_xtick_lablels,fontproperties=my_font)
    plt.xlabel("时间",fontproperties=my_font)
    plt.ylabel("温度",fontproperties=my_font)
    plt.show()

    2.绘制散点图

    你获取到了北京20163,10月份每天白天的最高气温(分别位于列表a,b),那么此时如何寻找出气温和随时间()变化的某种规律?

    a = [11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,17,20,14,15,15,15,19,21,22,22,22,23]

    b = [26,26,28,19,21,17,16,19,18,20,20,19,22,23,17,20,21,20,22,15,11,15,5,13,17,10,11,13,12,13,6]

    from matplotlib import pyplot as plt
    from matplotlib import font_manager
    
    
    my_font = font_manager.FontProperties(fname="C:\Windows\Fonts\FZSTK.TTF")
    
    
    a = [11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,17,20,14,15,15,15,19,21,22,22,22,23]
    b = [26,26,28,19,21,17,16,19,18,20,20,19,22,23,17,20,21,20,22,15,11,15,5,13,17,10,11,13,12,13,6]
    print(len(a))
    #  时间序列
    x_1=range(1,32)
    x_2=range(32,63)
    
    plt.figure(figsize=(20,8),dpi=80)
    _xtick1=["3月{}日".format(i) for i in range(1,32)]
    _xtick2=["10月{}日".format(i) for i in range(1,32)]
    _xtick=_xtick1+_xtick2
    
    plt.scatter(x_1,a)
    plt.scatter(x_2,b)
    #  每三个显示一次
    plt.xticks(range(1,63)[::3],_xtick[::3],rotation=45,fontproperties=my_font)
    
    plt.show()
    

    3.绘制条形图

    假设你获取到了2017年内地电影票房前20的电影(列表a)和电影票房数据(列表b),那么如何更加直观的展示该数据?

    a = ["战狼2","速度与激情8","功夫瑜伽","西游伏妖篇","变形金刚5:最后的骑士","摔跤吧!爸爸","加勒比海盗5:死无对证","金刚:骷髅岛","极限特工:终极回归","生化危机6:终章","乘风破浪","神偷奶爸3","智取威虎山","大闹天竺","金刚狼3:殊死一战","蜘蛛侠:英雄归来","悟空传","银河护卫队2","情圣","新木乃伊",]

    b=[56.01,26.94,17.53,16.49,15.45,12.96,11.8,11.61,11.28,11.12,10.49,10.3,8.75,7.55,7.32,6.99,6.88,6.86,6.58,6.23] 单位:亿

    4.绘制直方图

    假设你获取了250部电影的时长(列表a),希望统计出这些电影时长的分布状态(比如时长为100分钟到120分钟电影的数量,出现的频率)等信息,你应该如何呈现这些数据?

    a=[131,  98, 125, 131, 124, 139, 131, 117, 128, 108, 135, 138, 131, 102, 107, 114, 119, 128, 121, 142, 127, 130, 124, 101, 110, 116, 117, 110, 128, 128, 115,  99, 136, 126, 134,  95, 138, 117, 111,78, 132, 124, 113, 150, 110, 117,  86,  95, 144, 105, 126, 130,126, 130, 126, 116, 123, 106, 112, 138, 123,  86, 101,  99, 136,123, 117, 119, 105, 137, 123, 128, 125, 104, 109, 134, 125, 127,105, 120, 107, 129, 116, 108, 132, 103, 136, 118, 102, 120, 114,105, 115, 132, 145, 119, 121, 112, 139, 125, 138, 109, 132, 134,156, 106, 117, 127, 144, 139, 139, 119, 140,  83, 110, 102,123,107, 143, 115, 136, 118, 139, 123, 112, 118, 125, 109, 119, 133,112, 114, 122, 109, 106, 123, 116, 131, 127, 115, 118, 112, 135,115, 146, 137, 116, 103, 144,  83, 123, 111, 110, 111, 100, 154,136, 100, 118, 119, 133, 134, 106, 129, 126, 110, 111, 109, 141,120, 117, 106, 149, 122, 122, 110, 118, 127, 121, 114, 125, 126,114, 140, 103, 130, 141, 117, 106, 114, 121, 114, 133, 137,  92,121, 112, 146,  97, 137, 105,  98, 117, 112,  81,  97, 139, 113,134, 106, 144, 110, 137, 137, 111, 104, 117, 100, 111, 101, 110,105, 129, 137, 112, 120, 113, 133, 112,  83,  94, 146, 133, 101,131, 116, 111,  84, 137, 115, 122, 106, 144, 109, 123, 116, 111,111, 133, 150]

    from matplotlib import pyplot as plt
    from matplotlib import font_manager
    
    a=[131,  98, 125, 131, 124, 139, 131, 117, 128, 108, 135, 138, 131, 102, 107, 114, 119, 128, 121, 142, 127, 130, 124, 101, 110, 116, 117, 110, 128, 128, 115,  99, 136, 126, 134,  95, 138, 117, 111,78, 132, 124, 113, 150, 110, 117,  86,  95, 144, 105, 126, 130,126, 130, 126, 116, 123, 106, 112, 138, 123,  86, 101,  99, 136,123, 117, 119, 105, 137, 123, 128, 125, 104, 109, 134, 125, 127,105, 120, 107, 129, 116, 108, 132, 103, 136, 118, 102, 120, 114,105, 115, 132, 145, 119, 121, 112, 139, 125, 138, 109, 132, 134,156, 106, 117, 127, 144, 139, 139, 119, 140,  83, 110, 102,123,107, 143, 115, 136, 118, 139, 123, 112, 118, 125, 109, 119, 133,112, 114, 122, 109, 106, 123, 116, 131, 127, 115, 118, 112, 135,115, 146, 137, 116, 103, 144,  83, 123, 111, 110, 111, 100, 154,136, 100, 118, 119, 133, 134, 106, 129, 126, 110, 111, 109, 141,120, 117, 106, 149, 122, 122, 110, 118, 127, 121, 114, 125, 126,114, 140, 103, 130, 141, 117, 106, 114, 121, 114, 133, 137,  92,121, 112, 146,  97, 137, 105,  98, 117, 112,  81,  97, 139, 113,134, 106, 144, 110, 137, 137, 111, 104, 117, 100, 111, 101, 110,105, 129, 137, 112, 120, 113, 133, 112,  83,  94, 146, 133, 101,131, 116, 111,  84, 137, 115, 122, 106, 144, 109, 123, 116, 111,111, 133, 150]
    
    my_font = font_manager.FontProperties(fname="C:\Windows\Fonts\FZSTK.TTF")
    
    Max=max(a)
    Min=min(a)
    d=3  #设置组距,使得Max-Min能够整除组距
    num_bins=(Max-Min)//d
    
    plt.figure(figsize=(20,8),dpi=80)
    plt.hist(a,num_bins)
    plt.xticks(range(min(a),max(a)+d,d))
    
    plt.show()

    展开全文
  • 今天小编就为大家分享一篇python matplotlib dataframe的时间序列实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • Python Matplotlib画散点图并保存图片!

    千次阅读 2020-01-06 14:01:44
    Python Matplotlib画散点图并保存图片! python代码 #@Project filename:PythonDemo Draw-Scatter #@IDE :PyCharm #@Author :ganxiang #@Date :2020/01/06 13:36 import matplotlib.pyplot as plt import numpy ...

    Python Matplotlib画散点图并保存图片!

    python代码

    #@Project filename:PythonDemo  Draw-Scatter
    #@IDE   :PyCharm
    #@Author :ganxiang
    #@Date   :2020/01/06 13:36
    import matplotlib.pyplot as plt
    import numpy as np
    # plt.scatter() 展示变量之间的关系
    x = np.linspace(0.05,10,1000)
    y = np.random.rand(1000)
    plt.figure(figsize=(10,8),dpi=100) #设置画布大小,像素
    plt.scatter(x,y,label='scatter figure') #画散点图并指定图片标签
    plt.legend() #显示图片中的标签
    plt.savefig('./data/scatter.jpg')#保存图片
    plt.show()#展示图片
    

    效果展示
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • Python matplotlib绘制折线图

    千次阅读 2020-11-01 22:10:31
    Python matplotlib绘制折线图

    Python matplotlib绘制折线图

    matplotlib是Python中的一个第三方库。主要用于开发2D图表,以渐进式、交互式的方式实现数据可视化,可以更直观的呈现数据,使数据更具说服力。

    一、安装matplotlib

    pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple

    二、matplotlib图像简介

    matplotlib的图像分为三层,容器层、辅助显示层和图像层。

    1. 容器层主要由Canvas、Figure、Axes组成。

    Canvas位于图像的最底层,充当画布的作用。

    Figure位于Canvas之上,指画布上的一整张图像。

    Axes位于Figure之上,指Figure中的单个图表,一个Figure中可以有一个或多个Axes,即一张图像中可以有一个或多个图表。

    2. 辅助显示层是单个图表(Axes)中用来提供辅助信息的层。

    辅助显示层主要包括Axes外观(facecolor)、边框线(spines)、坐标轴(axis)、坐标轴名称(axis label)、坐标轴刻度(tick)、坐标轴刻度标签(tick label)、网格线(grid)、图例(legend)、标题(title)等内容。

    辅助层可使图像显示更加直观,提高可读性。

    3. 图像层指Axes内通过plot、scatter、bar、histogram、pie等函数绘制出的图形。

    三、matplotlib绘制折线图

    # coding=utf-8
    import matplotlib.pyplot as plt
    
    
    plt.figure(figsize=(20, 10), dpi=100)
    game = ['1-G1', '1-G2', '1-G3', '1-G4', '1-G5', '2-G1', '2-G2', '2-G3', '2-G4', '2-G5', '3-G1', '3-G2', '3-G3',
            '3-G4', '3-G5', '总决赛-G1', '总决赛-G2', '总决赛-G3', '总决赛-G4', '总决赛-G5', '总决赛-G6']
    scores = [23, 10, 38, 30, 36, 20, 28, 36, 16, 29, 15, 26, 30, 26, 38, 34, 33, 25, 28, 40, 28]
    plt.plot(game, scores)
    plt.show()

    运行结果:

    figure(): 创建图像并设置图像的大小等属性,返回一张图像,可以传入很多参数,常用参数有两个。figsize参数传入一个元组(width, height),设置图像的大小。dpi传入一个整数值,设置图像的清晰度。

    plot(): matplotlib中绘制折线图的函数。可以传入很多参数,一般传入两个列表,分别是折线图中的x值和y值。上面的例子中用了NBA2020年季后赛James的得分数据。

    show(): 展示图像。

    在上面的图表中,x坐标值中有中文,首次使用matplotlib绘图时中文无法正常显示。要解决中文显示问题,需要下载安装SimHei字体,下载链接:https://www.zitijia.com/i/281258939050380345.html,或直接搜索SimHei然后找一个正确的网站下载。下载完成后,在Windows下直接解压双击安装。安装完成后删除~/.matplotlib中的缓存文件,并创建配置文件matplotlibrc,将matplotlibrc中的内容设置为如下内容。

    font.family         : sans-serif
    font.sans-serif     : SimHei
    axes.unicode_minus  : False

    操作命令如下截图,完成后图像中就可以正常显示中文了。

    使用上面的代码,已经实现了简单的折线图,但展示的效果很差,所以需要进行优化,使图像展示得更好。

    四、matplotlib优化折线图

    import matplotlib.pyplot as plt
    
    
    plt.figure(figsize=(20, 10), dpi=100)
    game = ['1-G1', '1-G2', '1-G3', '1-G4', '1-G5', '2-G1', '2-G2', '2-G3', '2-G4', '2-G5', '3-G1', '3-G2', '3-G3',
            '3-G4', '3-G5', '总决赛-G1', '总决赛-G2', '总决赛-G3', '总决赛-G4', '总决赛-G5', '总决赛-G6']
    scores = [23, 10, 38, 30, 36, 20, 28, 36, 16, 29, 15, 26, 30, 26, 38, 34, 33, 25, 28, 40, 28]
    plt.plot(game, scores, c='red')
    plt.scatter(game, scores, c='red')
    y_ticks = range(50)
    plt.yticks(y_ticks[::5])
    plt.grid(True, linestyle='--', alpha=0.5)
    plt.xlabel("赛程", fontdict={'size': 16})
    plt.ylabel("得分", fontdict={'size': 16})
    plt.title("NBA2020季后赛詹姆斯得分", fontdict={'size': 20})
    plt.show()

    运行结果:

    在使用plot()函数绘图时,可以通过c='颜色'来设置折线图的颜色。

    scatter(): 绘制散点图。折线图是用直线连接相邻的两个点形成的,但是连成折线后点的显示不明显。scatter可以单独对点进行设置,展示得更明显。

    yticks(): 用于设置y轴坐标的范围,传入一个可迭代对象(如range()函数)。最开始绘制的折线图中,图像的y轴坐标范围是数据的范围,坐标原点不是0,使用yticks函数可以设置想要的坐标范围。同理xticks可以用于设置x轴坐标的范围。

    grid(): 用于设置图表中的网格线,使用linestyle参数设置网格线的样式,常用的样式有下表中的几种,plot()函数中也可以用linestyle参数设置折线图的样式。使用alpha参数设置网格线的透明度。

    样式字符
    实线
    虚线- - 
    点划线-.
    点虚线

    xlabel(): 用于设置x轴的标签,说明x轴坐标的含义,第一个参数传入需要设置的标签值,后面可以通过其他参数设置显示的效果,如字体大小等。ylabel同理。

    title(): 用于设置折线图的标题,说明这张折线图展示的数据。用法同xlabel。

    五、matplotlib绘制多条折线图

    import matplotlib.pyplot as plt
    
    
    plt.figure(figsize=(20, 10), dpi=100)
    game = ['1-G1', '1-G2', '1-G3', '1-G4', '1-G5', '2-G1', '2-G2', '2-G3', '2-G4', '2-G5', '3-G1', '3-G2', '3-G3',
            '3-G4', '3-G5', '总决赛-G1', '总决赛-G2', '总决赛-G3', '总决赛-G4', '总决赛-G5', '总决赛-G6']
    scores = [23, 10, 38, 30, 36, 20, 28, 36, 16, 29, 15, 26, 30, 26, 38, 34, 33, 25, 28, 40, 28]
    rebounds = [17, 6, 12, 6, 10, 8, 11, 7, 15, 11, 6, 11, 10, 9, 16, 13, 9, 10, 12, 13, 14]
    assists = [16, 7, 8, 10, 10, 7, 9, 5, 9, 7, 12, 4, 11, 8, 10, 9, 9, 8, 8, 7, 10]
    plt.plot(game, scores, c='red', label="得分")
    plt.plot(game, rebounds, c='green', linestyle='--', label="篮板")
    plt.plot(game, assists, c='blue', linestyle='-.', label="助攻")
    plt.scatter(game, scores, c='red')
    plt.scatter(game, rebounds, c='green')
    plt.scatter(game, assists, c='blue')
    plt.legend(loc='best')
    plt.yticks(range(0, 50, 5))
    plt.grid(True, linestyle='--', alpha=0.5)
    plt.xlabel("赛程", fontdict={'size': 16})
    plt.ylabel("数据", fontdict={'size': 16})
    plt.title("NBA2020季后赛詹姆斯数据", fontdict={'size': 20})
    plt.show()

    运行结果:

    要在同一张图像中展示多条折线图,多次调用plot()函数就行。每条折线图的颜色、样式等可以分别设置,以便更好地进行区分。

    legend(): 展示图例,通过loc参数传入图例在图表中展示的位置,可以传入的值有‘best’, 'upper right', 'upper left', 'lower left', 'lower right', 'right', 'center left', 'center right', 'lower center', 'upper center', 'center',这十一个值分别对应数字0~10,传值时也可以传对应的数字,后面十个值都指定了图例的位置,'best'表示自适应,会自动根据图像的分布在后面的十个值中选择一个,大部分为右上角'upper right'。

    为了使用图例,在每次调用plot()函数绘制折线图时,需要使用label参数给折线图添加标签,在图例中展示。有多条折线图时,图例可以用于区分每条折线图表示的含义,如将James的得分和篮板、助攻展示在同一张图中。

    六、matplotlib绘制多张折线图

    import matplotlib.pyplot as plt
    
    
    fig, axs = plt.subplots(nrows=1, ncols=3, figsize=(20, 6), dpi=100)
    game = ['1-G1', '1-G2', '1-G3', '1-G4', '1-G5', '2-G1', '2-G2', '2-G3', '2-G4', '2-G5', '3-G1', '3-G2', '3-G3',
            '3-G4', '3-G5', '总决赛-G1', '总决赛-G2', '总决赛-G3', '总决赛-G4', '总决赛-G5', '总决赛-G6']
    scores = [23, 10, 38, 30, 36, 20, 28, 36, 16, 29, 15, 26, 30, 26, 38, 34, 33, 25, 28, 40, 28]
    rebounds = [17, 6, 12, 6, 10, 8, 11, 7, 15, 11, 6, 11, 10, 9, 16, 13, 9, 10, 12, 13, 14]
    assists = [16, 7, 8, 10, 10, 7, 9, 5, 9, 7, 12, 4, 11, 8, 10, 9, 9, 8, 8, 7, 10]
    y_data = [scores, rebounds, assists]
    colors = ['red', 'green', 'blue']
    line_style = ['-', '--', '-.']
    y_labels = ["得分", "篮板", "助攻"]
    for i in range(3):
        axs[i].plot(game, y_data[i], c=colors[i], label=y_labels[i], linestyle=line_style[i])
        axs[i].scatter(game, y_data[i], c=colors[i])
        axs[i].legend(loc='best')
        axs[i].set_yticks(range(0, 50, 5))
        axs[i].grid(True, linestyle='--', alpha=0.5)
        axs[i].set_xlabel("赛程", fontdict={'size': 16})
        axs[i].set_ylabel(y_labels[i], fontdict={'size': 16}, rotation=0)
        axs[i].set_title("NBA2020季后赛詹姆斯{}".format(y_labels[i]), fontdict={'size': 20})
    fig.autofmt_xdate()
    plt.show()

    运行结果:

    subplots(): 用于在同一张图像中绘制多张图表,通过nrows, ncols两个参数设置图表的张数和排列方式,figsize和dpi同figure()函数。subplots()函数返回两个参数,一个是图像对象fig,一个是可迭代的图表数组axs(类型为numpy中的数组对象)。

    每一张图表中的标签、标题、样式、图例等都需要单独设置,为了避免代码过于冗余,可以使用循环。绘制每一张图表时,从axs中取出每一张图表,再调用plot()函数绘图。在设置坐标轴、标签、标题时,使用'set_'开头的方法进行设置,如设置x轴标签用set_xlabel()。

    autofmt_xdate(): x轴坐标值自适应倾斜。因为一张图像中有多张图表,x坐标值靠得很近,可能会因重叠造成展示效果差,使用fig对象的autofmt_xdate()方法可以设置自适应倾斜。

    以上就是matplotlib实现折线图的简单介绍,更多设置可以参考官网https://matplotlib.org/tutorials/index.html,并多作尝试。

     

     

    展开全文
  • 主要为大家详细介绍了python使用matplotlib模块绘制多条折线图散点图的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • matplotlib是受MATLAB的启发构建的。...每天温度数据如下,[15, 12.2, 14, 14, 34, 43, 23, 34, 11.5, 22, 23, 12],利用pyplot绘制折线图。 代码如下: from matplotlib import pyplot as plt x = range(2,
  • Python matplotlib绘制散点图

    万次阅读 多人点赞 2020-11-03 23:50:08
    Python matplotlib绘制散点图

    Python matplotlib绘制散点图

    上篇文章介绍了使用matplotlib绘制折线图,参考:https://blog.csdn.net/weixin_43790276/article/details/109191533,本篇文章继续介绍使用matplotlib绘制散点图。

    一、matplotlib绘制散点图

    # coding=utf-8
    import matplotlib.pyplot as plt
    
    
    years = [2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019]
    turnovers = [0.5, 9.36, 52, 191, 350, 571, 912, 1027, 1682, 2135, 2684]
    plt.figure(figsize=(10, 10), dpi=100)
    plt.scatter(years, turnovers)
    plt.show()

    运行结果:

    scatter(): matplotlib中绘制散点图的函数。可以传入很多参数,一般传入两个列表,分别是散点图中的x值和y值。上面的例子中使用2009年至2019年这十一年天猫双11的总成交额数据。

    散点图根据提供的两组数据,构成图形中的多个坐标点。根据坐标点的分布,分析两个变量之间是否存在某种关联,或总结坐标点的分布趋势,用于预测数据的走势。

    上面的代码已经实现了简单的散点图,但只把点绘制出来了,很多信息都不完整,所以需要进行优化。

    二、matplotlib优化散点图

    import matplotlib.pyplot as plt
    
    
    years = [2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019]
    turnovers = [0.5, 9.36, 52, 191, 350, 571, 912, 1027, 1682, 2135, 2684]
    plt.figure(figsize=(10, 15), dpi=100)
    plt.scatter(years, turnovers, c='red', s=100, label='成交额')
    plt.xticks(range(2008, 2020, 1))
    plt.yticks(range(0, 3200, 200))
    plt.xlabel("年份", fontdict={'size': 16})
    plt.ylabel("成交额", fontdict={'size': 16})
    plt.title("历年天猫双11总成交额", fontdict={'size': 20})
    plt.legend(loc='best')
    plt.show()

    运行结果:

    在第一次绘制的散点图中,已经看出了点的大概分布情况,所以在使用figure()函数创建图像时,可以修改figsize参数调整图像尺寸,设置更好的图像比例。

    在调用scatter()函数绘制散点图时,使用c='颜色'来设置点的颜色,使用s='大小'来设置点的大小,并设置label用于图例展示。

    第一次的散点图中,x轴上没有显示所有的年份刻度,最后一个点已经分布到了图形的右上角,所以使用xticks()和yticks()来设置x轴和y轴的刻度标签和范围。

    使用xlabel()和ylabel()设置x轴和y轴的标签,说明x轴和y轴的含义。使用title()设置散点图的标题,说明散点图展示的数据。使用legend()将图例展示出来。

    经过优化,一张基本功能完整,信息完整的散点图就完成了。

    三、matplotlib散点图区分点的颜色和大小

    import matplotlib.pyplot as plt
    import numpy as np
    
    
    years = [2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019]
    turnovers = [0.5, 9.36, 52, 191, 350, 571, 912, 1027, 1682, 2135, 2684]
    plt.figure(figsize=(10, 15), dpi=100)
    size = list()
    for tur in turnovers:
        size.append(tur) if tur > 100 else size.append(100)
    plt.xticks(range(2008, 2020, 1))
    plt.yticks(range(0, 3200, 200))
    plt.scatter(years, turnovers, c=np.random.randint(0, 50, 11), s=size)
    plt.xlabel("年份", fontdict={'size': 16})
    plt.ylabel("成交额", fontdict={'size': 16})
    plt.title("历年天猫双11总成交额", fontdict={'size': 20})
    plt.show()

    运行结果:

    上一张散点图中已经对数据作了基本的展示,为了使数据展示效果更好,可以对散点图进行美化。

    数据是历年双11的总成交额,每年的数据是独立的,可以用不同的颜色来区分。这里使用numpy中的random.randint()随机生成0到50之间的11个值,将这11个随机的值传给scatter()函数中的c参数,使每一个点的颜色不一样,可以更好地表示每个点的独立性。

    pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple

    成交额是逐年变化的,为了从散点图中体现出成交额大小的差异,可以根据成交额的大小改变点的大小。这里直接将成交额大小作为点的大小(成交额很小的设置一个值,图形中的点不小于这个值),得到由11个值组成的列表,传给scatter()函数中的s参数,可以体现每个点的大小差异(成交额越大点越大)。

    四、matplotlib散点图的趋势简单分析

    import matplotlib.pyplot as plt
    import numpy as np
    import math
    
    
    years = [2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019]
    turnovers = [0.5, 9.36, 52, 191, 350, 571, 912, 1027, 1682, 2135, 2684]
    squares = [math.pow(year-2008, 3.3) for year in years]
    powers = [math.pow(2, year-2008) for year in years]
    plt.figure(figsize=(10, 15), dpi=100)
    size = list()
    for tur in turnovers:
        size.append(tur) if tur > 100 else size.append(100)
    plt.xticks(range(2008, 2020, 1))
    plt.yticks(range(0, 3200, 200))
    plt.scatter(years, turnovers, c=np.random.randint(0, 50, 11), s=size, label='成交额')
    plt.plot(years, squares, color='red', label='x^3.3')
    plt.plot(years, powers, color='blue', label='2^n')
    plt.legend(loc='best', fontsize=16, markerscale=0.5)
    plt.xlabel("年份", fontdict={'size': 16})
    plt.ylabel("成交额", fontdict={'size': 16})
    plt.title("历年天猫双11总成交额", fontdict={'size': 20})
    plt.show()

    运行结果:

    散点图的作用主要是用于分析数据的趋势,用于预测未来的数据。比如我想预测2020年天猫双11的总成交额,通过对比的方式,简单分析一下这个趋势更接近指数函数还是更接近多次函数。

    在散点图中,我绘制了两条曲线,y=2^x和y=x^(3.3),一条是2为底的指数函数,一条是x的3.3次方(三次函数ax^3+bx^2+cx+d),可以看到双11总成交额的变化趋势更接近三次函数。

    这里我只是简单对比一下,三次函数还有二次项、一次项和常数项,所以x^(3.3)中的0.3可以通过二次项、一次项和常数项来补充,指数函数的变化趋势太快,与双11总成交额的变化趋势差异很大。这种简单对比是很粗糙的,只是为了说明散点图可以用于分析趋势。真实的分析不能简单看每年的数据,需要考虑很多因素(甚至因为某个因素的加入,成交额已经快到天花板了,很可能后面会下降)。

     

     

    展开全文
  • Python matplotlib绘制折线图简单实现

    千次阅读 2019-03-05 22:28:18
    Python matplotlib绘制折线图简单实现
  • I am using Python matplotlib. i want to superimpose scatter plots. I know how to superimpose continuous line plots with commands:>>> plt.plot(seriesX)>>> plt.plot(Xresampl)>>> plt.show()But it does no...
  • 主要为大家详细介绍了Python Matplotlib实现三维数据的散点图绘制,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 一:首先导入matplotlib库: File->setting Project Interpreter 点击右边的+号 ...二:折线图: #折线图 import matplotlib.pyplot as plt x_valuse = [1,2,3,4,5] y_squares = [1,4,9,16,25] #表...
  • pythonmatplotlib画折线图

    万次阅读 多人点赞 2017-02-17 20:46:07
    折线图: import matplotlib.pyplot as plt y1=[10,13,5,40,30,60,70,12,55,25] x1=range(0,10) x2=range(0,10) y2=[5,8,0,30,20,40,50,10,40,15] plt.plot(x1,y1,label='Frist line',linewidth=3,color='r',...
  • 自定义linestyle: '-' solid line style '--' dashed line style '-.' dash-dot line style ':' dotted line style 自定义marker: '.' point marker ',' pixel marker 'o' circle marker 'v' triangle_down marker...
  • 以下展示一些用 matplotlib 条形图、折线图、饼图以及散点图的示例,其中类似于图例、坐标轴名称,标题等的显示方法是一样的,不另做介绍。 0、引入模块 import random import matplotlib.pyplot as plt import ...
  • 1. 绘制散点图 # 绘制散点图 # 确定数据 x = np.arange(1, 70, 1) y = [21329.9, 24043.4, 25712.5, 29194.3, 24086.4, 26726.6, 28333.3, 31716.8, 26295.0, 29194.8, 31257.3, 34970.3, 29825.5, 32537.3, ...
  • import matplotlib.pyplot as plt import numpy as np X=np.array([0,2,3]) Y=np.array([0,2,3]) Z=Z=np.expand_dims([0,1,4],axis=0) fig=plt.figure() ax=fig.add_subplot(111,projection='3d') ax.plot_...
  • matplotlib简介matplotlibpython最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图。而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。它的文档相当完备,并且Gallery页面中有...
  • ![图片说明](https://img-ask.csdn.net/upload/201803/26/1522023911_68604.png) python画折线图,想要把每条线的标志部分移到外面的空白红色框中,该如何做
  • import matplotlib.pyplot as plt import numpy as np a = np.array([1,2,3,4]) b = np.array([1,2,3,4]) c = np.array([2,3,4,5]) d = np.array([2,3,4,5]) ''' figure的作用新建绘画窗口,独立显示绘画的图片 ...
  • Python Matplotlib 散点图的绘制

    万次阅读 多人点赞 2018-05-17 18:27:58
    之前使用matplotlib绘制曲线图直接使用的是plot()方法,其实绘制基础的散点图很简单,只要使用scatter()方法就可以了,其他的设置方式与曲线图的设置方式也是一致的。 例如: import matplotlib.pyplot as ...
  • 本博客总结了matplotlib常见的数据分析工具使用方法,包括画折线图,柱状图,直方图,散点图等。
  • 主要介绍了Python+matplotlib绘制不同大小和颜色散点图实例,matplotlib的用法是比较多种多样的,下面一起看看其中的一个实例吧
  • python matplotlib绘制多条折线图

    万次阅读 多人点赞 2020-08-02 22:13:10
    python matplotlib绘制多条折线图 代码 import matplotlib.pyplot as plt x = [6, 24, 48, 72] y1 = [87, 174, 225, 254] y2 = [24, 97, 202, 225] y3 = [110, 138, 177, 205] y4 = [95, 68, 83, 105] y5 = [72, 74...
  • python Matplotlib同时柱状图与折线图

    千次阅读 2021-03-21 10:01:47
    今天有朋友叫我同时柱状图和折线图,我试了一下,发现挺有意思的,所以把我的代码分享出来: 数据读取 import pandas as pd import matplotlib.pylab as plt import seaborn as sns import pylab as mpl %...
  • python matplotlib绘制散点密度

    千次阅读 2020-04-21 17:38:01
    import numpy as np import gdal as gd ...import matplotlib.pyplot as plt from scipy.stats import gaussian_kde from mpl_toolkits.axes_grid1 import make_axes_locatable plt.rcParams['fon...
  • python使用matplotlib画折线图(详细)

    千次阅读 2020-03-26 13:15:10
    #numpy,matplotlib,pandas为数据分析三剑客。 import numpy as np import pandas as pd import matplotlib.pyplot as plt from matplotlib.ticker import MultipleLocator #使用numpy产生数据 x = np.arange(-5, 5 ,...
  • 这个matplotlib画不好看,如果要看更多特效的可以看我之前的链接里面有很多 链接:https://blog.csdn.net/weixin_43321726/article/details/103357438 代码块: #time:2019.12.18 #autor:heguobao #python/...
  • python操作matplotlib画折线图显示数据

    万次阅读 多人点赞 2018-01-25 22:14:26
    本文想说的是折线点的地方显示数据纵坐标数据 利用:plt.text() 方法 废话不多说,直接上代码: # encoding=utf-8 import matplotlib.pyplot as plt # 月份 x1 = ['2017-01', '2017-02', '2017-03', '2017-04...
  • 主要介绍了python使用matplotlib绘制折线图的示例代码,帮助大家更好的利用matplotlib绘制图形,感兴趣的朋友可以了解下

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,407
精华内容 5,362
关键字:

pythonmatplotlib画散点图

python 订阅