精华内容
下载资源
问答
  • 利用Matplotlib实现数据可视化(一) 本文首发于微信公众号《Python希望社》,点击这里即可查看原文,欢迎关注,定时持续更新python学习干货。   无论你是编程小白,还是代码高手,大家都应该深有体会,可视化是...

    利用Matplotlib实现数据可视化(一)

    本文首发于微信公众号《Python希望社》,点击这里即可查看原文,欢迎关注,定时持续更新python学习干货。

      无论你是编程小白,还是代码高手,大家都应该深有体会,可视化是我们分析数据,做论文报告中不可或缺的一部分。的确,在今天这个时代,大数据与我们的生活息息相关,如何将复杂的数据简洁、明朗的展示在读者面前就显得尤为重要,我们的文章往往最吸引读者的地方也就在于精美的作图。为此,我们推出了python作图系列推文《利用Matplotlib实现数据可视化》。

      今天就带大家先来了解一下Matplotlib这个库以及怎么利用Matplotlib作一些简单的图。

    关于Matplotlib

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

    使用Matplotlib做一些简单的图

      我们日常学习中需要用到的一些基础的图形都可以运用Matplotlib绘图实现,话不多说,接下来就让我们来看几个案例。

    在这里插入图片描述

      上图是我最近做的一个数据分析比赛的图,它描述了某天某城市的疫情传播风险区域。利用坐标(原点位置),半径等参数,即可绘制。下面给大家贴上代码。

    from pylab import *#调用pylab模块
    mpl.rcParams['font.sans-serif'] = ['Microsoft YaHei']
    # 输入中文需要用到以上这两行代码
    import matplotlib.pyplot as plt#调用Matplotlib.pyplot模块
    fig = plt.figure()
    ax = fig.add_subplot(111)
    #这些是作为单个整数编码的子绘图网格参数。例如,“111”表示“1×1网格,第一子图”,“234”表示“2×3网格,第四子图”。
    a1 = Circle(xy=(-4.87, -5.57), radius=1, alpha=0.5, color='red')
    a2 = Circle(xy=(-2.53, -0.48), radius=1, alpha=0.5, color='red')
    a3 = Circle(xy=(-4.50, -1.16), radius=1, alpha=0.5, color='red')
    a4 = Circle(xy=(-5.01, -1.69), radius=1, alpha=0.5, color='red')
    #作一个圆,第一个参数为圆心坐标,第二个为半径,第三个为透明度(0-1),第四个表示颜色
    ax.add_patch(a1)#将图形添加到图中
    ax.add_patch(a2)
    ax.add_patch(a3)
    ax.add_patch(a4)
    plt.axis('scaled')
    plt.axis('equal')#x轴与y轴有相同长度
    plt.title('疫情传播风险区域')#标题
    plt.text(-9.8, -7.5, "单位:千米")#注释,可以放在任何位置
    plt.show()
    

      除了画圆,我们还可以如法炮制,绘制一些其他的图形:

    在这里插入图片描述

    Tips

      细心的小伙伴可能已经发现了我们在上述案例中用到了两个模块:pylabmatplotlib.pyplot,这里简单的介绍一下这两个模块。

    Pyplot:“方便快速绘图matplotlib通过pyplot模块提供了一套和MATLAB类似的绘图API,将众多绘图对象所构成的复杂结构隐藏在这套API内部。”

    pylab:“matplotlib还提供了一个名为pylab的模块,其中包括了许多NumPy和pyplot模块中常用的函数,方便用户快速进行计算和绘图,十分适合在IPython交互式环境中使用。”

      这里顺带提一下Numpy这个库,Numpy(Numeric Python)是一个模仿matlab的对python数值运算进行的扩展,提供了许多高级的数值编程工具,如:矩阵数据类型、矢量处理,以及精密的运算库。而很多情况下matplot需要配合numpy包一起使用。

    作用:pylab = pyplot+大部分numpy。也就是说pylab只是提供了一个方便的导入常用包的接口。

    详情见官方介绍:链接: https://matplotlib.org/faq/usage_faq.html#matplotlib-pyplot-and-pylab-how-are-they-related.

    接下来是一些比较实用的作图案例:

    (一)柱状图

    在这里插入图片描述

    代码如下:

    from pylab import *
    mpl.rcParams['font.sans-serif'] = ['Microsoft YaHei']
    x1 = np.arange(2004, 2017)
    y1 = [700, 800, 950, 1100, 1070, 1000, 1050, 900, 950, 900, 1000, 960, 980]
    y1 = np.array(y1)
    plt.figure(1)
    plt.bar(x1, y1, 0.6, color="coral")
    plt.title("商品销量与时间的关系")
    plt.xlabel(u"年份")
    plt.ylabel(u"销量")
    plt.text(2001.5, 1100, "单位:个")
    plt.show()
    

    (二)折线图

    在这里插入图片描述

    代码如下:

    from pylab import *
    plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
    x1 = np.arange(2004, 2017)
    x2 = np.arange(2004, 2017)
    y1 = [700, 800, 950, 1100, 1070, 1000, 1050, 900, 950, 900, 1000, 960, 980]
    y2 = [500, 600, 650, 600, 670, 700, 750, 800, 650, 500, 700, 760, 680]
    y1 = np.array(y1)
    y2 = np.array(y2)
    plt.figure(1)
    plt.plot(x1, y1, label='商品1销量', c='r')
    plt.scatter(x1, y1, c='r')
    plt.plot(x2, y2, label='商品2销量', c='g')
    plt.scatter(x2, y2, c='g')
    plt.title("商品销量与时间的关系")
    plt.xlabel(u"年份")
    plt.ylabel(u"销量")
    plt.legend()
    plt.xticks(range(2004, 2018, 2))
    plt.text(2002, 1150, "单位:个")
    plt.show()
    

    (三)饼图

    在这里插入图片描述

    代码如下:

    from pylab import *
    mpl.rcParams['font.sans-serif'] = ['Microsoft YaHei']
    def plot_pie(x, y):
        colors = 'yellowgreen', 'gold', 'lightskyblue', 'lightcoral', 'red', 'orange', 'blue', 'yellow', 'green',
        explode = 0, 0, 0, 0, 0, 0, 0, 0, 0,
        plt.pie(y, explode=explode, labels=x, colors=colors, autopct='%1.1f%%', shadow=False, startangle=50)
        plt.axis('equal')
        plt.show()
    if __name__ == '__main__':
        result = [5863., 882., 2000., 4470., 1200., 3251., 2480., 2295., 4712]
        x = '可口可乐', '毛巾', '牙刷', '食用油', '篮球', '火腿肠', '方便面', '酸奶', '其余'
        plot_pie(x, result)
    

      上面的几个例子都是用我们自己得到的数据进行输入作图,下面为大家展示一下利用函数表达式作图。

    (四)简单的函数图像

    在这里插入图片描述
    二次函数

    代码如下:

    python
    import matplotlib.pyplot as plt
    import numpy as np
    x = np.linspace(-1,1,50)
    y1 = x ** 2
    y2 = x
    plt.figure()
    plt.plot(x,y1)
    plt.figure()
    plt.plot(x,y2)
    plt.show()
    plot as plt
    import numpy as np
    x = np.linspace(-1,1,50)
    y1 = x ** 2
    y2 = x
    plt.figure()
    plt.plot(x,y1)
    plt.figure()
    plt.plot(x,y2)
    plt.show()
    

      以上就是利用Matplotlib绘制的一些最简单也是最常见的图,怎么样,你是否已经开始感受到它的魅力了呢?那么就请期待我们在此系列推文的后续为大家推出更多更精美的绘图吧!

    展开全文
  • 关于pylab和pyplot,人们过不少的讨论。这两个模块有哪些不同呢?pylab模块跟matplotlib一起安装,而pyplot则是matplotlib的内部模块。两者的导入方法有所不同,可选择其中一种进行导入。 from pylab import * #或...
        

    matplotlib是python中的一个画图库,继承了matlib(从名字上也看得出来)的优点和语法,所以对于熟悉matlib的用户来说是十分友好的。

    pylab和pyplot

    关于pylab和pyplot,人们做过不少的讨论。这两个模块有哪些不同呢?pylab模块跟matplotlib一起安装,而pyplot则是matplotlib的内部模块。两者的导入方法有所不同,可选择其中一种进行导入。

    from pylab import *
    #或
    import matplotlib.pyplot as plt
    import numpy as np
    

    pylab在同一命名空间整合了pyplot和Numpy的功能,因此无需再单独导入Numpy。更进一步来说,导入pylab后,pyplot和Numpy的函数就可以直接调用,而不用再指定其所属模块(命名空间),从而使得matplotlib开发环境更像是Matlab。

    plot(x,y)
    array([1,2,3,4])
    #而不用指定模块名称
    plt.plot()
    np.array([1,2,3,4])
    

    大多情况下,我们更乐意使用pyplot模块。

    线状图

    这里我使用jupyter来进行演示

    ipython qtconsole --matplotlib inline
    

    用matplotlib生成这个图表很简单,一行代码就能搞定

    plt.plot([1,2,3,4])
    plt.show()
    

    1.png

    如图所示,生成了一个Line2D对象。该对象为一条直线,它表示图表中各数据点的线性延伸趋势。我们可以看出,列表中的数据直接被作为y轴的值展示了出来,x周是从0开始的,所以我们要看一个数据的折线图,只用输入一个list即可。

    但我们可以看出这个图可能还很简陋,比如有如下几个问题:

    • y轴显示为啥是0.5为步长间隔,我想以1为步长间隔
    • 我想控制x轴展示的值,而不是从0开始
    • 图太小了,能否控制大小
    • x轴和y轴字太小了,能否控制大小
    • 给x轴和y轴命个名吧
    • 没有网格看不清
    • 没有图例
    • 给线状图标上点
    • 我想保存图片到本地
    • 怎么画子图呢

    接下来我们就一个一个解决。

    1.设置x轴和y轴步长间隔

    控制x轴,y轴显示的值,有两个参数

    • xticks(ticks, [labels], **kwargs)

    • yticks(ticks, [labels], **kwargs)

      • ticks:控制显示的位置,也就是显示那几个值,这几个值必须在y值数据的范围内,这里也就是[1,4]这个范围。
      • [labels]:控制显示在对应位置的值,可以是数也可以是字符。
    y = [1,2,3,4]
    step = 1
    plt.yticks([i for i in y if i%step == 0]) 
    plt.plot(y)
    

    2.png

    2.x轴展示的值

    这里展示了坐标轴显示字符的情况。

    注意第五行,我改成了[1,2,3,3.5,4],所以显示出来就多了个3.5。

    y = [1,2,3,4]
    scale_ls = range(4)
    index_ls = ["富强","民主","文明","和谐"]
    plt.xticks(scale_ls,index_ls)
    plt.yticks([1,2,3,3.5,4])
    plt.plot(y)
    

    Snipaste_2018-10-10_13-17-55.png

    3.控制图表大小

    控制图表的大小要用到的几个方法

    • rcParams:这个参数是用来设置一些配置参数的,比如这里我就用到了大小和dpi
      • figure.figsize:控制大小,参数为一个二元组(x,y),即长、宽
      • figure.dpi:控制dpi
    plt.rcParams['figure.figsize'] = (10,5)
    plt.rcParams['figure.dpi'] = 200
    y = [1,2,3,4]
    scale_ls = range(4)
    index_ls = ["富强","民主","文明","和谐"]
    plt.xticks(scale_ls,index_ls)
    plt.yticks([1,2,3,3.5,4])
    plt.plot(y)
    

    这里可以看出更大更清晰了

    3.png

    4.调节x轴和y轴字体大小

    这里控制字体大小用到的也是xticksyticks,只不过使用到了fontsize参数。

    plt.rcParams['figure.figsize'] = (10,5)
    plt.rcParams['figure.dpi'] = 200
    y = [1,2,3,4]
    scale_ls = range(4)
    index_ls = ["富强","民主","文明","和谐"]
    plt.xticks(scale_ls,index_ls,fontsize=20)
    plt.yticks([1,2,3,3.5,4],fontsize=20)
    plt.plot(y)
    

    Snipaste_2018-10-10_13-46-03.png

    5.给x轴和y轴加上名字

    使用

    • xlabel(str,fontsize=int )
    • ylabel(str,fontsize=int )
    plt.rcParams['figure.figsize'] = (10,5)
    plt.rcParams['figure.dpi'] = 200
    y = [1,2,3,4]
    scale_ls = range(4)
    index_ls = ["富强","民主","文明","和谐"]
    plt.xticks(scale_ls,index_ls,fontsize=20)
    plt.yticks([1,2,3,3.5,4],fontsize=20)
    plt.xlabel("核心价值观", fontsize=20)
    plt.ylabel("顺序", fontsize=20)
    plt.plot(y)
    

    Snipaste_2018-10-10_13-50-42.png

    6.加上网格

    • plt.grid(True),加上横纵两种网格。
    • plt.grid(True,axis="x"),加上x轴网格。
    plt.rcParams['figure.figsize'] = (10,5)
    plt.rcParams['figure.dpi'] = 200
    y = [1,2,3,4]
    scale_ls = range(4)
    index_ls = ["富强","民主","文明","和谐"]
    plt.xticks(scale_ls,index_ls,fontsize=20)
    plt.yticks([1,2,3,3.5,4],fontsize=20)
    plt.xlabel("核心价值观", fontsize=20)
    plt.ylabel("顺序", fontsize=20)
    plt.grid(True,axis="both")
    plt.plot(y)
    

    Snipaste_2018-10-10_14-01-54.png

    7.加上图例

    使用legend方法,里面有这么几个参数

    • handles:代表使用的是那几个曲线的对象
    • labels:代表对应的图例文字
    • loc:放置的位置
    • prop:额外参数,例如size,控制图例大小
    t = np.arange(0, 2.5, 0.01)
    y1 = map(math.sin, math.pi*t)
    y2 = map(math.cos, math.pi*t)
    l1, = plt.plot(list(y1))
    l2, = plt.plot(list(y2))
    plt.legend(handles = [l1, l2], labels = ['Sin', 'Cos'], loc = 'best', prop={'size': 20})
    

    Snipaste_2018-10-10_14-13-29.png

    8.给线状图标点

    只用在plot加入参数marker 即可

    t = np.arange(0, 2.5, 0.1)
    y1 = map(math.sin, math.pi*t)
    y2 = map(math.cos, math.pi*t)
    l1, = plt.plot(list(y1), marker = "o")
    l2, = plt.plot(list(y2), marker = "*")
    plt.legend(handles = [l1, l2], labels = ['Sin', 'Cos'], loc = 'best', prop={'size': 20})
    

    Snipaste_2018-10-10_14-19-11.png

    9.保存图片到本地

    只用在最后使用savefig 方法

    plt.savefig('test.png',dpi=400)
    

    10.画子图

    这里使用到了subplot方法

    他有三个参数,分别为

    • 几行
    • 几列
    • 第几个

    举个栗子

    1. subplot(2,2,1) 2行2列(即子图排列为田字格形状)第一个
    2. subplot(2,1,2) 2行1列(即子图排列为纵向两个图形状)第二个
    t = np.arange(0, 2.5, 0.1)
    y1 = map(math.sin, math.pi*t)
    y2 = map(math.cos, math.pi*t)
    
    plt.subplot(2, 1, 1)
    plt.title("Sin", fontsize=20)
    l1, = plt.plot(list(y1), marker = "o")
    
    plt.subplot(2, 1, 2)
    plt.title("Cos", fontsize=20)
    l2, = plt.plot(list(y2), marker = "*")
    

    这里我还使用到了title方法,给对应图表加上了标题。

    Snipaste_2018-10-10_14-27-58.png

    展开全文
  • 在今天晚上的学习中,我将继续完善昨晚所的天气图。 3.2 添加更多的数据: 设置好图表后,我们来添加更多的数据,以成一幅更复杂的天气图: 3.2.1 涵盖更长的时间: 现在可以创建覆盖整年的天气图了: # -*- ...

    在今天晚上的学习中,我将继续完善昨晚所做的天气图。

    3.2 添加更多的数据:

    设置好图表后,我们来添加更多的数据,以成一幅更复杂的天气图:

    3.2.1 涵盖更长的时间:

    现在可以创建覆盖整年的天气图了:

    在这里插入图片描述

    # -*- coding:utf-8 -*-
    
    import csv
    
    from matplotlib import pyplot as plt
    from datetime import datetime
    
    # 从文件中获取日期和最高气温
    filename =  'sitka_weather_2014.csv'
    with open(filename) as f:
    	reader = csv.reader(f)
    	header_row = next(reader)
    
    	dates, highs =[],[]
    
    	for row in reader:
    		current_date = datetime.strptime(row[0], "%Y-%m-%d")
    		dates.append(current_date)
    
    		high = int(row[1])
    		highs.append(high)
    
    	print(highs)
    
    # 根据数据绘制图形
    fig = plt.figure(dpi=127, figsize=(10, 6))
    plt.plot(dates,highs, c='red')
    
    # 设置图形的格式
    plt.title('Daily high temperature - 2014',  fontsize=23)
    plt.xlabel('', fontsize=17)
    fig.autofmt_xdate()
    plt.ylabel('Temperature(F)', fontsize=17)
    plt.tick_params(axis='both', which='major', labelsize=17)
    
    plt.show()
    

    我们修改了文件名,以使用新的数据文件sitka_weather_2014.csv(见第9行);我们还修改了图表的标题,以反映其内容的变化(见第30行)。下图显示了生成的图形:

    在这里插入图片描述

    3.2.2 再绘制一个数据:

    上图所示的改进后的图表显示了大量意义深远的数据,但我们可以在其中再添加最低气温数据,使其更有用。为此,需要从数据文件中提取最低气温,并将它们添加到图表中,如下所示:

    在这里插入图片描述

    # -*- coding:utf-8 -*-
    
    import csv
    
    from matplotlib import pyplot as plt
    from datetime import datetime
    
    # 从文件中获取日期和最高气温
    filename =  'sitka_weather_2014.csv'
    with open(filename) as f:
    	reader = csv.reader(f)
    	header_row = next(reader)
    
    	dates, highs, lows=[],[],[]
    
    	for row in reader:
    		current_date = datetime.strptime(row[0], "%Y-%m-%d")
    		dates.append(current_date)
    
    		high = int(row[1])
    		highs.append(high)
    
    		low = int(row[3])
    		lows.append(low)
    
    	print(highs)
    	print(lows)
    
    # 根据数据绘制图形
    fig = plt.figure(dpi=127, figsize=(10, 6))
    plt.plot(dates,highs, c='red')
    plt.plot(dates,lows, c='blue')
    
    # 设置图形的格式
    plt.title('Daily high and low temperature - 2014',  fontsize=23)
    plt.xlabel('', fontsize=17)
    fig.autofmt_xdate()
    plt.ylabel('Temperature(F)', fontsize=17)
    plt.tick_params(axis='both', which='major', labelsize=17)
    
    plt.show()
    

    在第14行处,我们添加了空列表lows ,用于存储最低气温。接下来,我们从每行的第4列(row[3] )提取每天的最低气温,并存储它们(见23-24行)。在第32行处,我们添加了一个对plot() 的调用,以使用蓝色绘制最低气温。最后,我们修改了标题(见第35行)。下图显示了这样绘制出来的图表:

    在这里插入图片描述

    3.2.3 给图表区域着色:

    添加两个数据系列后,我们就可以了解每天的气温范围了。下面来给这个图表做最后的修饰,通过着色来呈现每天的气温范围。为此,我们将使用方法fill_between() ,它接受一个 x 值系列和两个 y 值系列,并填充两个 y 值系列之间的空间:

    在这里插入图片描述

    # -*- coding:utf-8 -*-
    
    import csv
    
    from matplotlib import pyplot as plt
    from datetime import datetime
    
    # 从文件中获取日期和最高气温
    filename =  'sitka_weather_2014.csv'
    with open(filename) as f:
    	reader = csv.reader(f)
    	header_row = next(reader)
    
    	dates, highs, lows=[],[],[]
    
    	for row in reader:
    		current_date = datetime.strptime(row[0], "%Y-%m-%d")
    		dates.append(current_date)
    
    		high = int(row[1])
    		highs.append(high)
    
    		low = int(row[3])
    		lows.append(low)
    
    	print(highs)
    	print(lows)
    
    # 根据数据绘制图形
    fig = plt.figure(dpi=127, figsize=(10, 6))
    plt.plot(dates,highs, c='red',alpha=0.5)
    plt.plot(dates,lows, c='blue',alpha=0.5)
    plt.fill_between(dates, highs ,lows, facecolor='green', alpha=0.2)
    
    # 设置图形的格式
    plt.title('Daily high and low temperature - 2014',  fontsize=23)
    plt.xlabel('', fontsize=17)
    fig.autofmt_xdate()
    plt.ylabel('Temperature(F)', fontsize=17)
    plt.tick_params(axis='both', which='major', labelsize=17)
    
    plt.show()
    

    31-32行处的实参alpha 指定颜色的透明度。Alpha 值为0表示完全透明,1(默认设置)表示完全不透明。通过将alpha 设置为0.5,可让红色和蓝色折线的颜色看起来更浅。 在第33行处,我们向fill_between() 传递了一个 x 值系列:列表dates ,还传递了两个 y 值系列:highslows 。实参facecolor 指定了填充区域的颜色,我还将alpha 设置成了较小的值0.2,让填充区域将两个数据系列连接起来的同时不分散观察者的注意力。下图显示了最高气温和最低气温之间的区域被填充的图表,通过着色,让两个数据集之间的区域显而易见:

    在这里插入图片描述

    3.2.4 对错误进行检查:

    我们应该能够使用有关任何地方的天气数据来运行highs_lows.py中的代码,但有些气象站会偶尔出现故障,未能收集部分或全部其应该收集的数据。缺失数据可能会引发异常,如果不妥善地处理,可能导致程序崩溃。例如,我们来看看下面这个例子出现的情况:

    在这里插入图片描述

    # -*- coding:utf-8 -*-
    
    import csv
    
    from matplotlib import pyplot as plt
    from datetime import datetime
    
    # 从文件中获取日期和最高气温
    filename =  'death_valley_2014.csv'
    with open(filename) as f:
    	reader = csv.reader(f)
    	header_row = next(reader)
    
    	dates, highs, lows=[],[],[]
    
    	for row in reader:
    		current_date = datetime.strptime(row[0], "%Y-%m-%d")
    		dates.append(current_date)
    
    		high = int(row[1])
    		highs.append(high)
    
    		low = int(row[3])
    		lows.append(low)
    
    	print(highs)
    	print(lows)
    
    # 根据数据绘制图形
    fig = plt.figure(dpi=127, figsize=(10, 6))
    plt.plot(dates,highs, c='red',alpha=0.5)
    plt.plot(dates,lows, c='blue',alpha=0.5)
    plt.fill_between(dates, highs ,lows, facecolor='green', alpha=0.2)
    
    # 设置图形的格式
    plt.title('Daily high and low temperature - 2014',  fontsize=23)
    plt.xlabel('', fontsize=17)
    fig.autofmt_xdate()
    plt.ylabel('Temperature(F)', fontsize=17)
    plt.tick_params(axis='both', which='major', labelsize=17)
    
    plt.show()
    

    运行这个程序时,出现了一个错误,如上述输出的最后一行所示:该traceback指出,Python无法处理其中一天的最高气温,因为它无法将空字符串(' ' )转换为整数。只要看一下death_valley_2014.csv,就能发现其中的问题:

    在这里插入图片描述

    其中好像没有记录2014年2月16日的数据,表示最高温度的字符串为空。为解决这种问题,我们在从CSV文件中读取值时执行错误检查代码,对分析数据集时可能出现的异常进行处理,如下所示:

    在这里插入图片描述

    # -*- coding:utf-8 -*-
    
    import csv
    
    from matplotlib import pyplot as plt
    from datetime import datetime
    
    # 从文件中获取日期和最高气温
    filename =  'death_valley_2014.csv'
    with open(filename) as f:
    	reader = csv.reader(f)
    	header_row = next(reader)
    
    	dates, highs, lows=[],[],[]
    
    	for row in reader:
    		try:
    			current_date = datetime.strptime(row[0], "%Y-%m-%d")
    			low = int(row[3])
    			high = int(row[1])
    			
    		except ValueError:
    			print(current_date, 'missing data')
    
    		else:
    			dates.append(current_date)
    			highs.append(high)
    			lows.append(low)
    
    
    # 根据数据绘制图形
    fig = plt.figure(dpi=127, figsize=(10, 6))
    plt.plot(dates,highs, c='red',alpha=0.5)
    plt.plot(dates,lows, c='blue',alpha=0.5)
    plt.fill_between(dates, highs ,lows, facecolor='green', alpha=0.2)
    
    # 设置图形的格式
    plt.title('Daily high and low temperature - 2014',  fontsize=23)
    plt.xlabel('', fontsize=17)
    fig.autofmt_xdate()
    plt.ylabel('Temperature(F)', fontsize=17)
    plt.tick_params(axis='both', which='major', labelsize=17)
    
    plt.show()
    

    对于每一行,我们都尝试从中提取日期、最高气温和最低气温(见第17行)。只要缺失其中一项数据,Python就会引发ValueError 异常,而我们可这样处理:打印一条错误消息, 指出缺失数据的日期(见22-23行)。打印错误消息后,循环将接着处理下一行。如果获取特定日期的所有数据时没有发生错误,将运行else 代码块,并将数据附加到相应列表的末尾(见第25-28行)。如果现在运行highs_lows.py ,如上图所示,将发现缺失数据的日期只有一个。

    使用的很多数据集都可能缺失数据、数据格式不正确或数据本身不正确。在这里,我们使用了一个try-except- else 代码块来处理数据缺失的问题。在有些情况下,需要使用continue 来跳过一些数据,或者使用remove()del 将已提取的数据删除。


    展开全文
  • Python数数据据可可视视化化教教程程之之Matplotlib实实现现各各种种图图表表实实例例 这篇文章主要给大家介绍了关于Python数据可视化教程之利用Matplotlib实现各种图表的相关资料文中通过示例 码介绍的非常详细对...
  • 利用Python进行数据分析之Matplotlib 数据可视化金融领域必备的数据分析技能上期讲了线性回归分析,这期讲解Matplotlib数据可视化·现代人的时间越来越碎片化,因此我准备抛弃那种长篇大论的教程,希望大家每天花...

    利用Python进行数据分析之Matplotlib 数据可视化

    金融领域必备的数据分析技能

    上期讲了线性回归分析,这期讲解Matplotlib库数据可视化

    ·

    现代人的时间越来越碎片化,因此我准备抛弃那种长篇大论的教程,希望大家每天花上几分钟就可以学到一点数据分析知识

    下面运行环境没有的,请看第一期内容安装环境✅

    ·

    Matplotlib 可能是 Python 2D-绘图领域使用最广泛的套件。它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式。这里将会探索 matplotlib 的常见用法。

    ·

    🌟本节重点:

    1. 绘制简单的折线图

    2. 修改标签文字和线条粗细

    3. 校正图形

    4. Bar 柱状图

    5. 使用scatter()绘制散点图并设置其样式

    6. 绘制随机漫步图

    ·

    具体知识点与代码请看图示

    Tip:本文代码量比较大,请花几分钟认真看完哟,坚持就是胜利,每天进步一点点✌️

    最后一张图源码下载,如果不想敲那么代码同学,可以下载哟⏬

    🌟1.绘制简单的折线图

    使用import导入模块matplotlib.pyplot

    使用plt.figure定义一个图像窗口

    使用plt.plot画(x ,y)曲线.

    使用plt.show显示图像

    设置图标标题,并给坐标轴加上标签

    设置刻度标记的大小

    ·

    🌟2.简单的线条

    使用plt.figure定义一个图像窗口

    使用plt.plot画(x ,y2)曲线

    使用plt.plot画(x ,y1)曲线,曲线的颜色属性(color)为红色;曲线的宽度(linewidth)为1.0

    曲线的类型(linestyle)为虚线. 使用plt.show显示图像

    ·

    🌟3.BAR 柱状图

    向上向下分别生成12个数据,X为 0 到 11 的整数 ,Y是相应的均匀分布的随机数据

    使用的函数是plt.bar,参数为X和Y

    ·

    🌟4.SCATTER 散点图

    使用scatter()绘制散点图并设置其样式

    先引入matplotlib.pyplot简写作plt,再引入模块numpy用来产生一些随机数据

    生成1024个呈标准正态分布的二维数据组 (平均数是0,方差为1) 作为一个数据集

    并图像化这个数据集

    ·

    详细代码与讲解看图示,更多图例讲解请看图下载源码。

    ·

    后面讲更多数据分析知识。

    #金融数据分析#

    #Python数据分析#

    #金融分析#

    展开全文
  • 这里讲的是如何用python做出描点图,python作图与matlib作图相似,可用实验数据分析时的作图,精确度也可以。 注:以下是python3.6在第三方库matplotlib下作的图 以下就是具体代码,希望能帮到你。 import pylab ...
  •  matplotlib: 最流行的Python底层绘图库,主要做数据可视化图表,名字取材于MATLAB,模仿MATLAB构建,能将数据进行可视化、更直观的呈现、使数据更加客观、更具说服力。 三、matplotlib模块的使用基本要点,根据不同...
  • 数据可视化

    千次阅读 2018-06-11 19:01:02
    作者:Walker 我们本篇文章讲的数据可视化是面向开发人员的,是利用python中一些可视化库如:...本篇文章的方法并非是面向用户做数据展示或面向企业做数据可视化,这种情况下大家可以尝试使用Echarts或Tabl...
  • R我没有用过,作为一个python爱好者,相信类似的统计分析和可视化python一定是有类似的工具的,正好几天前工作中需要分析并可视化数据,就开始寻找,最终在stackoverflow上发现很多人推荐matplotlib这个工具,配合...
  • 如果单纯的进行可视化,那么python不是最好的工具,但是如果是做可视化数据分析,那么python绝对是一个不错的选择,因为python有多个非常流行的可视化工具包,比如Matplotlib、Seaborn 、Pandas、ggplot(2)等。...
  • 因为需要一个html形式的数据统计界面,所以了一个基于pyecharts包的可视化程序,当然matplotlib还是常用的数据可视化包,只不过各有优劣;基本功能概述就是读取csv文件数据,对每列进行数据统计并可视化,最后形成...
  • 前言 经过学习之后,我总结了利用python实现可视化的三个步骤: ...python中最基本的作图库就是matplotlib,是一个最基础的Python可视化库,一般都是从matplotlib上手Python数据可视化,然后开始纵向与横向拓..
  • 因为需要一个html形式的数据统计界面,所以了一个基于pyecharts包的可视化程序,当然matplotlib还是常用的数据可视化包,只不过各有优劣;基本功能概述就是读取csv文件数据,对每列进行数据统计并可视化,最后形成...
  • 如果单纯的进行可视化,那么python不是最好的工具,但是如果是做可视化数据分析,那么python绝对是一个不错的选择,因为python有多个非常流行的可视化工具包,比如Matplotlib、Seaborn 、Pandas、ggplot(2)等。...
  • python的数据可视化工具有很多,比如常见的matplotlib,但是讲到视觉效果的华丽,动态的交互,目前最漂亮的应该就是Echarts了。用Echarts可以做出很多漂亮的图形。Python里也有pyecharts,但是这种单一的图表页面...
  • 本文分享了如何利用 Python 及 matplotlib 和 seaborn 库制作出多种多样的可视化图形。通过以下的例子,可以感受到利用可视化能多么美丽的展示数据。而且和其它语言相比,使用 Python 进行可视化更容易简便一些,不...
  • 利用networkx可以以标准和非标准数据格式存储网络、生成多种随机网络和经典网络、分析网络结构、建立网络模型、设计新的网络算法、进行网络绘制等。 ——百度百科 我们可以用networkx什么? https://n...
  • matplotlib是最流行的Python底层绘图库,主要做数据可视化图表,名字取材于MATLAB,模仿MATLAB构建。 1. 利用matplotlib绘制折线图 根据上面的方法我们对如下数据进行处理: 假设一天中每隔两个小时(range(2,26,2))...
  • 原标题:数据可视化(二)丨使用pandas和seaborn绘图matplotlib是一个相对底层的工具。pandas自身有内建的可视化工具。另一个库seaborn则是用来一些统计图形。导入seaborn会改变matlotlib默认的颜色和绘图样式,提高...
  • 另外,一个可交互的数据可视化也许是工作的最终目标。Python有许多库进行静态或动态的数据可视化,但我这里重要关注于matplotlib(http://matplotlib.org/)和基于它的库。matplotlib是一个用于创建出版质量图表的...
  • 【Python3】matplotlib笔记

    万次阅读 2019-12-19 12:06:17
    机器学习常常需要进行数据可视化matplotlib是python可视化最著名的库。 matplotlib API文档 常用方法: pylot模块 hist:柱状图 plot show:开一个窗口展示图片 ion:画图不阻塞,恩,可以利用这个...
  • 01一个动态气泡图,可以展现多个维度的信息。比如说,要对比分析中国和美国从 1800 年以来每年的人口...利用 matplotlib 制作动画的功能,我了一个动态气泡图的视频:在作图的细节方面,我了一下刻意的调整:...
  • 1.导入数据数据预处理分析目标:探索影响短租房价格的因素,消费者对短租房的评分是否对短租房价格有影响。%matplotlib inlineimport warningswarnings.filterwarnings("ignore")import numpy as npimport pandas ...
  • 关于使用python的matplotlib动态图

    万次阅读 2015-06-03 17:05:08
    关于使用python的matplotlib动态图参考: ...* 利用Python进行数据分析 绘图和可视化(八)、 * 用Python和MoviePy将数据动态可视化 * matplotlib-绘制精美的图表另外可以看看测试如何将MatPlotLib嵌入到wxPytho
  • 前言 刚刚从学生刀职场人的身份彻底转换... 电商项目传送门:https://zhuanlan.zhihu.com/p/64581943可视化基础知识 常用的可视化库有matplotlib和seaborn库,以下是复习时复现的《d利用python进行数据分析-第二版》...
  • pandas & matplotlib 用于数据分析和可视化 上一个任务通过requests、BeautifulSoup4两个功能强大、用法简洁的函数库已经获取到了楼盘名、地址和价格这些新房信息,并且保存为csv格式文件,csv文件可以用excel打开并...
  • Python广泛应用于所有数据科学领域,包括数据分析、机器学习、深度学习和数据可视化。不过你知道如何利用Python做数据分析吗?需要学习哪些知识?下面就给大家讲解一下。 与数据分析相关的Python库很多,比如Numpy、...
  • Python广泛应用于所有数据科学领域,包括数据分析、机器学习、深度学习和数据可视化。不过你知道如何利用Python做数据分析吗?需要学习哪些知识?下面就给大家讲解一下。与数据分析相关的Python库很多,比如Numpy、...
  • Python广泛应用于所有数据科学领域,包括数据分析、机器学习、深度学习和数据可视化。不过你知道如何利用Python做数据分析吗?需要学习哪些知识?下面就给大家讲解一下。 与数据分析相关的Python库很多,比如Numpy、...
  • 利用python的matplotlib和requestss两个库对中奖号码进行可视化分析。经过分析可以知道中奖号码为红色和蓝色两种,数据是以json进行存储。 二、方法: 1.首先:matplotlibh和request库的安装,【pip install ...

空空如也

空空如也

1 2 3 4
收藏数 62
精华内容 24
关键字:

利用matplotlib做数据可视化