精华内容
下载资源
问答
  • matplotlib绘图

    2017-12-01 11:53:27
    用pandas读取csv,excel等数据,然后使用matplotlib绘出其中图像(包括点状图,直方图,雷达图等等)
  • 主要介绍了Python的matplotlib绘图如何修改背景颜色的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 参考网上的例子,实现了简单的matplotlib pyqt5绘图  相关知识点:  (1)pyqt5中添加控件要在布局中添加  (2)布局可以使用replaceWidget替换控件  (3)信号与槽机制 timer = QtCore.QTimer(self) ...
  • 造成上述情况的原因其实是由于输入matplotlib.plot()函数的数据x_data和y_data从CSV文件中直接导入后格式为string,因此才会导致所有数据点的x坐标都被直接刻在了x轴上,且由于坐标数据格式错误,部分点也就表现为...
  • Matplotlib是一个基于python的2D画图库,能够用python脚本方便的画出折线图,直方图,功率谱图,散点图等常用图表,而且语法简单。具体介绍见matplot官网。 Numpy(Numeric Python)是一个模仿matlab的对python数值...
  • matplotlib是基于Python语言的开源项目,旨在为Python提供一个数据绘图包。在使用Python matplotlib库绘制数据图时,需要使用图例标注数据类别,但是传参时,会出现图例解释文字只显示第一个字符,需要在传参时在...
  • 主要介绍了Python使用matplotlib绘图无法显示中文问题的解决方法,结合具体实例形式分析了Python使用matplotlib绘图时出现中文乱码的原因与相关解决方法,需要的朋友可以参考下
  • 主要介绍了将matplotlib绘图嵌入pyqt的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 说到数据可视化绘图,我们先想到的应该是matplotlib库,可以对其中的axes对象等调用不同的绘图方法(如axes.plot())。 作为数据分析用的pandas库提供了Series DataFrame等类型的对象,我们也可以调用上述对象来绘图...
  • 本篇文章给大家详细介绍了python中matplotlib绘图设置坐标轴刻度、文本等基本知识点,对此有兴趣的朋友学习下吧。
  • Matplotlib 绘图

    2018-11-21 23:39:14
    学习PYTHON数据分析资料。数据科学速查表之Matplotlib 绘图
  • 案例包括点击画图功能,和显示 matplotlib 导航条功能(比如,显示保存、放大等功能按钮);但是,matplotlib 自带的导航条功能是英文的,做软件时用户用起来可能不方便。
  • 主要介绍了Python matplotlib绘图可视化知识点整理(小结),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • import matplotlib.pyplot as plt #创建一个Figure fig = plt.figure() #不能通过空figure绘图,必须使用add_subplot创建一个或多个subplot #图像为2x2,第三个参数为当前选中的第几个 ax1 = fig.add_subplot(2, 2, ...
  • Python数据科学速查表 - Matplotlib 绘图.pdf
  • 最近在学习数据可视化,梳理一下其中一些诸如pandas绘图、matplotlib绘图、pyplot(plt)、axes等概念。 重要的事情说三遍:axes不是axis!axes不是axis!axes不是axis! 重要的事情说三遍:pyplot是接口不是对象!...
  • matplotlib绘图的核心原理讲解(超详细)

    万次阅读 多人点赞 2020-02-13 18:13:43
      使用matplotlib绘图的原理,主要就是理解figure(画布)、axes(坐标系)、axis(坐标轴)三者之间的关系。   以“美院学生张三写生画画”为例,来说明这三者之间的关系。   首先,张三想要画画,是不是需要在画板...

    1、核心原理讲解

    在这里插入图片描述
      使用matplotlib绘图的原理,主要就是理解figure(画布)、axes(坐标系)、axis(坐标轴)三者之间的关系。
    在这里插入图片描述
    张三的画板
    在这里插入图片描述
    matplotlib绘图
    在这里插入图片描述

    2、matplotlib库的安装与导入

    1)安装
    pip install matplotlib
    
    2)导入相关库

      现在你不需要关注下面代码具体是什么意思,有一个主观印象即可。我将会在以后的文章中,给大家一一介绍你不懂的哪些参数。

    import numpy as np
    import pandas as pd
    import matplotlib as mpl
    import matplotlib.pyplot as plt
    
    # 排除警告信息
    import warnings
    warnings.filterwarnings("ignore")
    
    # 打印版本信息
    display(np.__version__)
    display(pd.__version__)
    display(mpl.__version__)
    
    # matplotlib画图常见参数设置
    mpl.rcParams["font.family"] = "SimHei" # 设置字体
    mpl.rcParams["axes.unicode_minus"]=False # 用来正常显示负号
    plt.rcParams['font.sans-serif']=['SimHei'] # 用来正常显示中文标签
    
    # 嵌入式显示图形
    %matplotlib inline  
    

    结果如下:
    在这里插入图片描述

    3、创建figure(画布)的两种方式

    1)绘制一个最简单的折线图
    import matplotlib as mpl
    import matplotlib.pyplot as plt
    
    x = [1,3,5,7]
    y = [4,9,6,8]
    plt.plot(x,y)
    plt.show()
    

    结果如下:
    在这里插入图片描述
    结果分析:
      在前面的叙述中,我们已经说过,想要使用matplotlib绘图,必须先要创建一个figure(画布)对象,然后还要有axes(坐标系)。但是观察上述代码,我们并没有创建figure对象,那么怎么又可以画图呢?
      对于上述疑问,接下来我们就要讲述创建figure(画布)的两种方式。

      

    2)创建figure(画布)的两种方式
    • 隐式创建
    • 显示创建
    ① 隐式创建figure对象

      当第一次执行plt.xxx()这句绘图代码时,系统会去判断是否已经有了figure对象,如果没有,系统会自动创建一个figure对象,并且在这个figure之上,自动创建一个axes坐标系(注意:默认创建一个figure对象,一个axes坐标系)。
      也就是说,如果我们不设置figure对象,那么一个figure对象上,只能有一个axes坐标系,即我们只能绘制一个图形。
      

    ② 隐式创建figure对象存在的问题

      优势:如果只是绘制一个小图形,那么直接使用plt.xxx()的方式,会自动帮我们创建一个figure对象和一个axes坐标系,这个图形最终就是绘制在这个axes坐标系之上的。
      劣势:如果我们想要在一个figure对象上,绘制多个图形,那么我们就必须拿到每个axes对象,然后调用每个位置上的axes对象,就可以在每个对应位置的坐标系上,进行绘图,如下图所示。注意:如果figure对象是被默认创建的,那么我们根本拿不到axes对象。因此,需要我们显示创建figure对象。
    在这里插入图片描述

    ③ 显示创建figure对象:以后的文章会详细讲述布局设置
    # 手动创建一个figure对象
    figure = plt.figure()
    # 获取每个位置的axes对象
    axes1 = figure.add_subplot(2,1,1)
    axes2 = figure.add_subplot(2,1,2)
    

    如图所示:
    在这里插入图片描述
    举例说明:

    figure = plt.figure()
    axes1 = figure.add_subplot(2,1,1)
    axes2 = figure.add_subplot(2,1,2)
    
    axes1.plot([1,3,5,7],[4,9,6,8])
    axes2.plot([1,2,4,5],[8,4,6,2])
    figure.show()
    

    结果如下:
    在这里插入图片描述

    4、完整的绘图步骤

    ① 导库
    import matplotlib as mpl
    import matplotlib.pyplot as plt
    
    ② 创建figure画布对象
        如果绘制一个简单的小图形,我们可以不设置figure对象,使用默认创建的figure对象,
    当然我们也可以显示创建figure对象。
        如果一张figure画布上,需要绘制多个图形。那么就必须显示的创建figure对象,然后
    得到每个位置上的axes对象,进行对应位置上的图形绘制。
    
    ③ 根据figure对象进行布局设置
    1*1
    1*2
    2*1
    2*2
    ...
    
    ④ 获取对应位置的axes坐标系对象
    figure = plt.figure()
    axes1 = figure.add_subplot(2,1,1)
    axes2 = figure.add_subplot(2,1,1)
    
    ⑤ 调用axes对象,进行对应位置的图形绘制
        这一步,是我们传入数据,进行绘图的一步。对于图形的一些细节设置,都可以在这一步进行。
    
    ⑥ 显示图形
        plt.show()或figure.show()
        如果在pycharm中绘图的话,必须要加这句代码,才能显示。如果在notebook中进行绘图,
    可以不用加这句代码,而是自动显示。
    

    5、绘图技巧(细节设置)

    * figure 画布
    * axes 坐标系,一个画布上可以有多个坐标系
    * axis 坐标轴,一个坐标系中可以有多个坐标轴,一般都是二维平面坐标系,或者三维立体坐标系
    * title 标题
    * legend 图例
    * grid 背景网格
    * tick 刻度
    * axis label 坐标轴名称
    * tick label 刻度名称
        * major tick label 主刻度标签
        * minor tick label 副刻度标签
    * line 线
    * style 线条样式
    * marker 点标记
    * font 字体相关
    

      通过对matplotlib绘图的原理,有所了解之后,我们需要学习的就是常见的matplotlib绘图技巧,常见的绘图技巧如上所示,这些绘图技巧都能够很好的帮助我们画出更美观、更直观的图形。下一节,我将会讲述matplotlib绘图技巧(千万不要错过)。

    展开全文
  • import matplotlib.pyplot as plt import numpy (2)、figure对象和subplot简单运用 #figure对象 fig = plt.figure() #figure是图象对象 ax1 = fig.add_subplot(2,2,1) #创建一个2*2的子图,放在第一个位置 ax2 = ...
  • Python进阶-Matplotlib绘图

    千人学习 2018-12-18 13:43:55
    Matplotlib是python中非常常用的绘图工具包,可用于查看显示数据分析的结果,查看程序运行流程等等。本课程会讲解到matplotlib中最常用的一些知识点,包括绘制基本图形,散点图,直方图,等高线图,3D图,动态图等等...
  • matplotlib绘图问题

    2021-05-27 17:07:38
    使用matplotlib.use('TkAgg')解决导出图为空图层的问题(jupyter notebook)
  • 主要介绍了python matplotlib 绘图 和 dpi对应关系详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 我的终极整理,供参考 # coding:utf-8 import matplotlib # 使用 matplotlib中的FigureCanvas (在使用 Qt5 Backends中 FigureCanvas...from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as Fig...

    我的终极整理,供参考

    # coding:utf-8
    import matplotlib
    # 使用 matplotlib中的FigureCanvas (在使用 Qt5 Backends中 FigureCanvas继承自QtWidgets.QWidget)
    from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
    from PyQt5 import QtCore, QtWidgets, QtGui
    from PyQt5.QtWidgets import QDialog, QPushButton, QVBoxLayout
    import matplotlib.pyplot as plt
    import numpy as np
    import sys
    """学好pyplot API和面向对象 API搞定matplotlib绘图显示在GUI界面上"""
    
    class Main_window(QDialog):
        def __init__(self):
            super().__init__()
            # 三步走,定Figure,定Axes,定FigureCanvas
            # 1 直接一段代码搞定figure和axes
            self.figure, (self.ax1, self.ax2) = plt.subplots(figsize=(13, 3), ncols=2)
    
            # 2 先创建figure再创建axes
            # 2.1 用plt.figure()  /  Figure() 创建figure, 推荐前者
            self.figure = plt.figure(figsize=(5,3), facecolor='#FFD7C4')
            # self.figure = Figure(figsize=(5,3), facecolor='#FFD7C4')
            # 2.2 用plt.subplots()  /  plt.add_subplot() 创建axes, 推荐前者
            (self.ax1, self.ax2) = self.figure.subplots(1, 2)
            # ax1 = self.figure.add_subplot(121)
            # ax2 = self.figure.add_subplot(122)
    
            # 3 绑定figure到canvas上
            self.canvas = FigureCanvas(self.figure)
    
            self.button_draw = QPushButton("绘图")
            self.button_draw.clicked.connect(self.Draw)
    
            # 设置布局
            layout = QVBoxLayout()
            layout.addWidget(self.canvas)
            layout.addWidget(self.button_draw)
            self.setLayout(layout)
    
        def Draw(self):
            AgeList = ['10', '21', '12', '14', '25']
            NameList = ['Tom', 'Jon', 'Alice', 'Mike', 'Mary']
            # 将AgeList中的数据转化为int类型
            AgeList = list(map(int, AgeList))
    
            # 将x,y转化为numpy数据类型,对于matplotlib很重要
            self.x = np.arange(len(NameList)) + 1
            self.y = np.array(AgeList)
    
            # tick_label后边跟x轴上的值,(可选选项:color后面跟柱型的颜色,width后边跟柱体的宽度)
            self.ax1.bar(range(len(NameList)), AgeList, tick_label=NameList, color='green', width=0.5)
            for a, b in zip(self.x, self.y):
                self.ax1.text(a-1, b, '%d' % b, ha='center', va='bottom')
            plt.title("Demo")
    
            pos = self.ax2.imshow(np.random.random((100, 100)), cmap=plt.cm.BuPu_r)
            self.figure.colorbar(pos, ax=self.ax2)      # 终于可以用colorbar了
    
            self.canvas.draw()
    
    
    # 运行程序
    if __name__ == '__main__':
        app = QtWidgets.QApplication(sys.argv)
        main_window = Main_window()
        main_window.show()
        app.exec()

    总结就是,想要在特定的位置放matplotlib绘图还是要用面向对象的API,但混合使用pyplot的API可以使代码更简单。

    展开全文
  • matplotlib绘图教程

    万次阅读 多人点赞 2019-05-12 10:04:50
    import matplotlib.pyplot as plt np.random.seed(2) y = np.random.random(10) z = np.random.random(10) x = range(len(y)) plt.grid() # 网格 plt.plot(y, c='g', linewidth=1.5, label='plo...
    import numpy as np
    import matplotlib.pyplot as plt
    
    np.random.seed(2)
    y = np.random.random(10)
    z = np.random.random(10)
    x = range(len(y))
    
    plt.grid()  # 网格
    plt.plot(y, c='g', linewidth=1.5, label='plot 1')  # 折线图
    plt.plot(z, c='b', linewidth=1.5, label='plot 2')  # 折线图
    
    plt.xlabel('x')  # 设置x轴标签
    plt.ylabel('y')  # 设置y轴标签
    
    plt.xlim(-1, 10)  # 设置x轴的范围
    plt.ylim(0, 1)  # 设置y轴的范围
    
    plt.scatter(x, y, marker='o', c='r')  # 散点
    plt.scatter(x, z, marker='s', c='r')  # 散点
    plt.legend()  # 图例
    
    plt.title('matplotlab')  # 设置标题
    plt.show()
    

    在这里插入图片描述

    import numpy as np
    import matplotlib.pyplot as plt
    
    np.random.seed(2)
    y = np.random.random(10)
    x = range(len(y))
    
    plt.grid()  # 网格
    plt.plot(y, c='g')  # 画折线图,颜色为绿色
    plt.xlabel('x')  # 设置x轴标签
    plt.ylabel('y')  # 设置y轴标签
    plt.xticks(x, ('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'g'))  # 设置x轴刻度
    plt.title('matplotlib')
    plt.show()
    

    在这里插入图片描述

    import numpy as np
    import matplotlib.pyplot as plt
    
    np.random.seed(2)
    y = np.random.random(10)
    z = np.random.random(10)
    x = range(len(y))
    
    plt.figure(figsize=(10, 5))  # 子图
    plt.subplot(121)
    plt.plot(x, y)
    plt.grid()
    plt.title('fig 1')
    plt.xlabel('x')
    plt.ylabel('y')
    
    plt.subplot(122)
    plt.bar(x, y)
    plt.title('fig 2')
    plt.xlabel('x')
    plt.ylabel('y')
    plt.xticks(x, ('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'g'))
    
    plt.show()
    

    在这里插入图片描述

    import matplotlib.pyplot as plt
    import numpy as np
    
    np.random.seed(0)
    
    x = range(10)
    y = np.random.random(10)
    
    plt.figure(figsize=(10, 4)) # 设置图的大小
    plt.subplots_adjust(wspace=0.3, hspace=0.2)  # 设置子图间距
    
    plt.subplot(121)
    plt.grid() # 设置网格
    plt.plot(x, y, marker='o', c='k', lw=2, ls='-', label='linear', 
             markersize=8, 
             markerfacecolor='gray', 
             markeredgecolor='k') # 设置标记形状、线条颜色、线条宽度、线条类型、标签、标记大小、标记填充颜色、标记边界颜色
    plt.legend() # 图例
    plt.xlabel('x') # x轴标签
    plt.ylabel('y') # y轴标签
    plt.title('plot')  # 标题
    plt.xticks(x, range(10)) # x轴刻度
    
    plt.subplot(122)
    plt.bar(x, y, color='w', edgecolor='k', hatch='//', label='bar') #  设置柱子颜色、边界颜色、填充形状、标签
    plt.legend()
    plt.xlabel('x')
    plt.ylabel('y')
    plt.title('bar')
    plt.xticks(x, range(10))
    
    plt.show()
    

    在这里插入图片描述

    import numpy as np
    import matplotlib.pyplot as plt
    
    np.random.seed(1)
    
    x = np.random.random((100, 2))
    
    plt.scatter(x[:, 0], x[:, 1], marker='o', c='g')  # 散点图
    plt.xlabel('x')
    plt.ylabel('y')
    plt.title('scatter')
    
    plt.show()
    

    在这里插入图片描述

    import numpy as np
    import matplotlib.pyplot as plt
    
    np.random.seed(1)
    
    x = np.random.randn(100)
    
    plt.hist(x, bins=10, color='g', density=True, edgecolor='black', alpha=0.8, label='hist')  # 直方图
    plt.title('hist')
    plt.xlabel('x')
    plt.ylabel('y')
    plt.legend()
    
    plt.show()
    

    在这里插入图片描述

    import matplotlib.pyplot as plt
    import numpy as np
    
    labels = ["A", "B", "C"]    
    size = [45, 25, 30]    
    color = ["red", "green", "blue"] 
    explode = [0.05, 0, 0]
    
    # 饼图
    plt.pie(size, explode=explode, colors=color, labels=labels, labeldistance=1.1, autopct="%1.1f%%", shadow=False, startangle=90, pctdistance=0.6)
    plt.axis("equal")
    plt.legend()
    plt.show()
    

    在这里插入图片描述

    import matplotlib.pyplot as plt
    import matplotlib
    
    # 设置中文字体和字体正常显示
    matplotlib.rcParams['font.sans-serif'] = ['SimHei']
    matplotlib.rcParams['axes.unicode_minus'] = False
    
    labels = ['语文', '数学', '英语', '化学']
    data1 = [80, 70, 75, 92]
    data2 = [95, 60, 70, 90]      
    x = range(len(labels))
    
    #  条形图
    r1 = plt.bar(left=x, height=data1, width=0.4, alpha=0.7, color='r', label="张三")
    r2 = plt.bar(left=[i + 0.4 for i in x], height=data2, width=0.4, alpha=0.7, color='g', label="李四")
    plt.ylim(0, 100)
    plt.ylabel("成绩")
    
    plt.xticks([index + 0.2 for index in x], labels)
    plt.xlabel("学生")
    plt.title("成绩单")
    plt.legend()
    
    plt.show()
    

    在这里插入图片描述

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = [10, 20, 22, 15, 28]
    y = ['A', 'B', 'C', 'D', 'E']
    
    fig, ax = plt.subplots()
    y_ = np.arange(len(y))
    ax.barh(y_, x, color='blue', align='center')
    ax.set_yticks(y_)
    ax.set_yticklabels(y)
    ax.set_xlabel('scores')
    ax.set_ylabel('features')
    ax.set_title('Title')
    
    plt.show()
    

    在这里插入图片描述
    曲线平滑

    import matplotlib.pyplot as plt
    import matplotlib
    import numpy as np
    from scipy import interpolate
    
    matplotlib.rcParams['font.sans-serif'] = ['SimHei']
    matplotlib.rcParams['axes.unicode_minus'] = False
    
    x = np.arange(21)  # 生成数据x
    np.random.seed(4)
    y = np.random.randn(21)  # 随机生成数据y
    
    plt.figure(figsize=(10, 5))
    plt.suptitle('曲线平滑', fontsize=20)  # 设置标题
    
    plt.subplot(221)
    plt.scatter(x, y, marker='o', c='b')
    plt.plot(x, y, c='b')
    plt.xlabel('x')
    plt.ylabel('y')
    plt.title('原始数据')  # 设置子图标题
    
    plt.subplot(222)
    # 拟合
    z = np.polyfit(x, y, 20)  # deg=20
    f = np.poly1d(z)
    plt.plot(x, f(x), c='r')
    plt.xlabel('x')
    plt.ylabel('y')
    plt.title('拟合')
    
    plt.subplot(223)
    # 插值
    xnew = np.arange(0, 20, 0.1)
    func = interpolate.interp1d(x, y, kind='cubic')
    ynew = func(xnew)
    plt.plot(xnew, ynew, c='g')
    plt.xlabel('x')
    plt.ylabel('y')
    plt.title('插值')
    
    plt.subplot(224)
    # 组合
    plt.plot(x, y, c='b')
    plt.plot(x, f(x), c='r')
    plt.plot(xnew, ynew, c='g')
    plt.xlabel('x')
    plt.ylabel('y')
    plt.title('组合图')
    # plt.xlim(0, 20)
    
    plt.subplots_adjust(wspace=0.2, hspace=0.5) # 调整子图间距
    plt.show()
    

    在这里插入图片描述
    曲线平滑

    import matplotlib.pyplot as plt
    from scipy.interpolate import make_interp_spline
    import numpy as np
    
    y = np.array([2, 4, 1, 6, 8, 3, 5])
    x = np.array([0, 1, 2, 3, 4, 5, 6])
    
    xnew = np.linspace(x.min(), x.max(), 100)
    ynew = make_interp_spline(x, y)(xnew)
    plt.plot(xnew, ynew)
    plt.show()
    

    在这里插入图片描述

    展开全文
  • 本文讲的是与plot(), scatter(), pyplot()等绘图函数中常用的参数。 目录1 marker 标号1.1 相关参数2 linestyle 线的样式3 linewidth 线宽4 label 图例5 alpha 透明度6 color 颜色创建自己的colormapmatplotlib....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 45,782
精华内容 18,312
关键字:

matplotlib绘图