精华内容
下载资源
问答
  • Python+Matplotlib科研绘图

    千次阅读 2020-02-08 00:17:06
    如何快速使用Python Matplotlib 科研绘图 文章目录如何快速使用Python Matplotlib 科研绘图1. 工作环境2. 读写Excel文件3. 绘图格式设置4. 绘制线图5. 更多绘图样式 写在前面: 最近学习和使用了Python Matplotlib ...

    如何快速使用Python Matplotlib 科研绘图


    写在前面: 最近学习和使用了Python Matplotlib 进行科研绘图,对这一方面有了一点学习心得,所以趁着有空把方法总结下,给自己留个念想也希望能给一样需要科研绘图的朋友一点参考。毕竟水平有限,内容有错漏可以留言,我来更改和补充。

    1. 工作环境

    • 配置python环境:建议下载Anconda最新版本和Pycharm Community版,可参考这里下载和安装。Anconda一路按照默认值点确定即可,该软件为开源软件,无需付费,是目前最常用的Python开发环境的集成软件。Pycharm安装后需要选择Anaconda的开发环境。

    • 所需模块:matplotlib、xlrd、xlwt;

      模块安装步骤:安装好Anaconda后在Anaconda Prompt(见图1)或者Window自带的CMD窗口输入以下指令:

      pip install matplotlib xlrd xlwt
      

      安装完成后会有 xxx installed successfully的信息提示

      **图1**图1

    • 验证模块是否安装正确,可以打开編程的交互窗口输入

      import matplotlib,xlrd,xlwt
      

      无报错提示即为环境配置成功(见图2)

      在这里插入图片描述图2

    2. 读写Excel文件

    此部分将介绍如何将excel中的数据提取出来或者将计算出的数据保存到Excel中去。在科研绘图时,必不可免的需要从Excel中获取数据并对数据可视化。

    • 读取数据

      Python读取Excel文档可以使用xlrd模块,主要步骤如下:

      • import xlrd
        
      • 打开Excel文件

        workbook1=xlrd.open_workbook(excel_path)#文件目录需包含文件后缀 .xls
        
      • 获取excel文件中的一个工作簿

        sheet1=workbook1.sheet_by_index(sheet_index)#通过工作簿的顺序索引获取工作簿,索引顺序从0开始
        sheet_names=workbook1.sheet_names()#获取工作簿的名称
        sheet2=workbook1.sheet_by_name(sheet_name)#通过工作簿的名称获取工作簿
        
      • 获取工作簿的行列数

        nr=sheet1.nrows#行数
        nc=sheet1.ncols#列数
        
      • 获取数据

        data=sheet1.row(row_index)#获取当前行数所在行所有单元格内数据组成的列表
        cell_len=sheet1.row_len(row_index)#获取当前行数有效单元格长度
        data=sheet1.row_values(row_index,start_rowx=0,end_rowx=None)#获取某一行中所有单元各数据组成的列表
        data=sheet1.col(col_index,start_colx=0,end_colx=None)#获取某一列中所有单元格对象所组成的列表
        data=sheet1.col_values(col_index,start_colx=0,end_colx=None)#获取某一列中所有单元各数据组成的列表
        data=sheet1.cell(row_index,col_index)#获取单元格对象,(行,列)
        data=sheet1.cell_value(row_index,col_index)#获取单元格对象,(行,列)
        
    • 写入数据:这一部分搬运自此处,详细阅读请至原网站

      • 导入模块

        import xlwt
        #创建一个工作簿,括号中为编码方式
        workbook = xlwt.Workbook(encoding='utf-8')
        
      • 设置格式

        #初始化样式
        style = xlwt.XFStyle()
        #创建字体样式
        font = xlwt.Font()
        font.name = 'Times New Roman'
        font.bold = True#True表示加粗,False表示不加粗
        font.italic = True#斜体
        font.underline = True#下划线
        style.font = font #设定字体样式
        
      • 操作

      #创建sheet表
      #cell_overwrite_ok=True只保留生效最后一次写入
      sheet1 =workbook.add_sheet('sheet1',cell_overwrite_ok=True)
      sheet2 =workbook.add_sheet('sheet2',cell_overwrite_ok=True)
      sheet1.write(0,0,'未设置样式')#(行,列,内容)
      sheet2.write(0,0,'设置样式',style)#含有样式x
      sheet1.col(0).width = 120#设置单元格宽度
      #将工作簿以Excel文件格式保存到本地,注意保存的文件格式
      workbook.save('excel_test.xlsx')
      

    3. 绘图格式设置

    • 创建画图

      import matplotlib.pyplot as plt#导入模块
      plt.figure(num=1,figsize=(2.7,1.8))#创建画图,序号为1,图片大小为2.7*1.8
      
    • 设置字体

      plt.rcParams['axes.unicode_minus'] = False#使用上标小标小一字号
      plt.rcParams['font.sans-serif']=['Times New Roman']
      #设置全局字体,可选择需要的字体替换掉‘Times New Roman’
      #使用黑体'SimHei'作为全局字体,可以显示中文
      #plt.rcParams['font.sans-serif']=['SimHei']
      font1={'family': 'Times New Roman', 'weight': 'light', 'size': 12}#设置字体模板,
      #wight为字体的粗细,可选 ‘normal\bold\light’等
      #size为字体大小
      
    • 图框设置

      #设置图框与图片边缘的距离
      plt.tight_layout(rect=(0,0,1,1))#rect=[left,bottom,right,top]
      #设置x轴
      plt.tick_params(\
          axis='x',#设置x轴
          direction='in',# 小坐标方向,in、out
          which='both',      # 主标尺和小标尺一起显示,major、minor、both
          bottom=True,      #底部标尺打开
          top=False,         #上部标尺关闭
          labelbottom=True, #x轴标签打开
          labelsize=6) #x轴标签大小
      plt.tick_params(\
          axis='y',
          direction='in',
          which='both',     
          left=True,    
          right=False,  
          labelbottom=True) 
      plt.minorticks_on()#开启小坐标
      plt.ticklabel_format(axis='both',style='sci')#sci文章的风格
      

    在这里插入图片描述

    • ticklabel_format定义tick和label的风格,具体参数设置可以参考matplotlib官网的介绍

      Keyword Description
      axis [ ‘x’ | ‘y’ | ‘both’ ]
      style [ ‘sci’ (or ‘scientific’) | ‘plain’ ] plain turns off scientific notation
      scilimits (m, n), pair of integers; if style is ‘sci’, scientific notation will be used for numbers outside the range 10m to 10n. Use (0,0) to include all numbers. Use (m,m) where m <> 0 to fix the order of magnitude to 10m.
      useOffset [ bool | offset ]; if True, the offset will be calculated as needed; if False, no offset will be used; if a numeric offset is specified, it will be used.
      useLocale If True, format the number according to the current locale. This affects things such as the character used for the decimal separator. If False, use C-style (English) formatting. The default setting is controlled by the axes.formatter.use_locale rcparam.
      useMathText If True, render the offset and scientific notation in mathtext
    • tick_params定义边框参数,具体参数设置可以参考matplotlib官网的介绍

      Parameters: axis : {‘x’, ‘y’, ‘both’}, optionalWhich axis to apply the parameters to.
      Other Parameters: axis : {‘x’, ‘y’, ‘both’}Axis on which to operate; default is ‘both’.reset : boolIf True, set all parameters to defaults before processing other keyword arguments. Default is False.which : {‘major’, ‘minor’, ‘both’}Default is ‘major’; apply arguments to which ticks.direction : {‘in’, ‘out’, ‘inout’}Puts ticks inside the axes, outside the axes, or both.length : floatTick length in points.width : floatTick width in points.color : colorTick color; accepts any mpl color spec.pad : floatDistance in points between tick and label.labelsize : float or strTick label font size in points or as a string (e.g., ‘large’).labelcolor : colorTick label color; mpl color spec.colors : colorChanges the tick color and the label color to the same value: mpl color spec.zorder : floatTick and label zorder.bottom, top, left, right : boolWhether to draw the respective ticks.labelbottom, labeltop, labelleft, labelright : boolWhether to draw the respective tick labels.labelrotation : floatTick label rotationgrid_color : colorChanges the gridline color to the given mpl color spec.grid_alpha : floatTransparency of gridlines: 0 (transparent) to 1 (opaque).grid_linewidth : floatWidth of gridlines in points.grid_linestyle : stringAny valid Line2D line style spec.
    • tight_layout调整图片的填充间距,具体参数设置可以参考matplotlib官网的介绍

      Parameters: pad : floatPadding between the figure edge and the edges of subplots, as a fraction of the font size.h_pad, w_pad : float, optionalPadding (height/width) between edges of adjacent subplots, as a fraction of the font size. Defaults to pad.rect : tuple (left, bottom, right, top), optionalA rectangle (left, bottom, right, top) in the normalized figure coordinate that the whole subplots area (including labels) will fit into. Default is (0, 0, 1, 1).
    • 创建标签和标题

      plt.title("图片标题",fontdict = font1)#标题
      plt.ylabel('Value/ $\mathregular{min^{-1}}$',fontdict=font1)#$\mathregular{min^{-1}}$label的格式,^{-1}为上标
      plt.xlabel('Time/min',fontdict=font1)
      plt.legend(loc="best",scatterpoints=1,prop=font0,shadow=True,frameon=False)#添加图例,loc控制图例位置,“best”为最佳位置,“bottom”,"top",“topringt"等,shadow为图例边框阴影,frameon控制是否有边框
      

      在这里插入图片描述图例

    • 画图

      plt.plot(x,y,'k--',lw=1.5,label="line1")#'k--'为直线的格式,k表示颜色黑色,--表示虚线
      #--可以替换为其他符号
       plt.scatter(x,y,marker='o',color='r',s=10,label="line2")#marker为点的形式,color为颜色
       #
      
      • marker的种类,引用自matplotlib官网
        在这里插入图片描述

      • 引用matplotlib的color使用

        Matplotlib recognizes the following formats to specify a color:

        • an RGB or RGBA tuple of float values in [0, 1] (e.g., (0.1, 0.2, 0.5) or (0.1, 0.2, 0.5, 0.3));
        • a hex RGB or RGBA string (e.g., '#0f0f0f' or '#0f0f0f80'; case-insensitive);
        • a string representation of a float value in [0, 1] inclusive for gray level (e.g., '0.5');
        • one of {'b', 'g', 'r', 'c', 'm', 'y', 'k', 'w'};
        • a X11/CSS4 color name (case-insensitive);
        • a name from the xkcd color survey, prefixed with 'xkcd:' (e.g., 'xkcd:sky blue'; case insensitive);
        • one of the Tableau Colors from the ‘T10’ categorical palette (the default color cycle): {'tab:blue', 'tab:orange', 'tab:green', 'tab:red', 'tab:purple', 'tab:brown', 'tab:pink', 'tab:gray', 'tab:olive', 'tab:cyan'} (case-insensitive);
        • a “CN” color spec, i.e. 'C' followed by a number, which is an index into the default property cycle (matplotlib.rcParams['axes.prop_cycle']); the indexing is intended to occur at rendering time, and defaults to black if the cycle does not include color.
    • 查看和保存图片

      plt.show()#查看图片
      plt.savefig("figure_1.eps",format="eps",dpi=600)
      plt.savefig("figure_1.tif",format="tif",dpi=600)
      plt.savefig("figure_1.png",format="png",dpi=600)
      #保存不同的图片格式,dpi为图片的精细程度,dpi越高图片越精细,也更大
      

    4. 绘制线图

    本部分为一个具体的绘图例子,介绍代码的使用

    import matplotlib.pyplot as plt#导入模块
    #先设置需要画图的数据
    x=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]
    y1=[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35]
    y2=[19,21,23,25,27,29,31,33,35,37,11,13,15,17,5,7,9,1]
    #
    plt.figure(num=1,figsize=(6,4))#创建画图,序号为1,图片大小为2.7*1.8
    plt.rcParams['axes.unicode_minus'] = False#使用上标小标小一字号
    plt.rcParams['font.sans-serif']=['Times New Roman']
    #设置全局字体,可选择需要的字体替换掉‘Times New Roman’
    #使用黑体作为全局字体,可以显示中文
    #plt.rcParams['font.sans-serif']=['SimHei']
    font1={'family': 'Times New Roman', 'weight': 'light', 'size': 12}#设置字体模板,
    font2={'family': 'Times New Roman', 'weight': 'light', 'size': 16}#设置字体模板,
    #wight为字体的粗细,可选 ‘normal\bold\light’等
    #size为字体大小
    plt.title("Title",fontdict=font2)#标题
    plt.plot(x,y1,'r^',lw=1.5,label="line1")#红色直线
    plt.plot(x,y2,'b-',lw=1.5,label="line2")#蓝色三角
    plt.ylabel('Value/ $\mathregular{min^{-1}}$',fontdict=font1)#$\mathregular{min^{-1}}$label的格式,^{-1}为上标
    plt.xlabel('Time/min',fontdict=font1)
    plt.legend(loc="best",scatterpoints=1,prop=font1,shadow=True,frameon=False)#添加图例,\
    # loc控制图例位置,“best”为最佳位置,“bottom”,"top",“topringt"等,\
    # shadow为图例边框阴影,frameon控制是否有边框
    plt.minorticks_on()#开启小坐标
    #设置图框与图片边缘的距离
    #设置x轴
    plt.tick_params(\
        axis='x',#设置x轴
        direction='in',# 小坐标方向,in、out
        which='both',      # 主标尺和小标尺一起显示,major、minor、both
        bottom=True,      #底部标尺打开
        top=False,         #上部标尺关闭
        labelbottom=True, #x轴标签打开
        labelsize=12) #x轴标签大小
    plt.tick_params(\
        axis='y',
        direction='in',
        which='both',
        left=True,
        right=False,
        labelbottom=True,
        labelsize=12)
    plt.ticklabel_format(axis='both',style='sci')#sci文章的风格
    plt.tight_layout(rect=(0,0,1,1))#rect=[left,bottom,right,top]
    plt.savefig("example.png",format="png",dpi=600)
    plt.show()
    
    • 运行后可以得到如下的图片

    在这里插入图片描述

    • eps格式的图片结合Adobe Illustrator(AI)使用可以更好地对原始图片进行修改和补充,是科研绘图的高阶使用(目前只是简单地尝试过,后续更新。。。)

    5. 更多绘图样式

    科研绘图的图片格式设置是绘图的第一步,建立自己的风格确定文章绘图模板,有了模板,只要将其中的线图、点图更换为自己需要的柱状图、饼图以及其他的样式就可以了。更多的绘图样式可以参考Matplotlib中的example

    展开全文
  • Matplotlib科研画图.图基本框架. Sep 6, 2020. Berkeley, USA.step 1f_size = 10 #字体大小,用于label和ticks等font = {'size': f_size}#字体大小用于label和ticks等plt.style.use('default') #基本风格,包括画框...

    Matplotlib科研画图.图基本框架. Sep 6, 2020. Berkeley, USA.

    step 1

    f_size = 10  #字体大小,用于label和ticks等

    font = {'size': f_size} #字体大小用于label和ticks等

    plt.style.use('default') #基本风格,包括画框线粗,预设调色盘等

    plt.rcParams['font.family'] = 'Arial' #字体样式

    plt.rcParams['font.size'] = 9 #字体大小,也可通过上面的font局部调整

    step 2

    fig = plt.figure(figsize=(3.5, 4)) #构建图

    plt.subplots_adjust(left=0.14, bottom=0.13, right=1.03, top=0.96, wspace=0, hspace=0.5) #调整图和子图位置

    ax= fig.add_subplot(1, 1, 1) #构建轴

    step 3

    ax.plot() #具体画图

    step 4

    ax.set_xlabel('x', font) #x坐标,font在这里控制字体

    ax.set_ylabel('y', font) #y坐标,font在这里控制字体

    ax.tick_params(axis="x", labelsize=f_size-1, labelrotation=45, labelcolor="k") #控制刻度内容,字体大小,方向旋转,颜色

    ax.legend(loc=(0.1,0.1), ncol=1, frameon=False, labelspacing=0.2, columnspacing=0.7, fontsize=f_size-1) #控制legend

    展开全文
  • matplotlib图例、标签、坐标轴刻度的字体设置 一、法一 plt.figure(figsize=[15,8]) plt.scatter(X, Y, label = 'RealValue') plt.plot(X, func(X, a, b), 'red', label = 'CurveLine') plt.title(station, fontdict...

    matplotlib科研绘图—Times New Roman字体设置

    一、法一

    plt.figure(figsize=[15,8])
    plt.scatter(X, Y, label = 'RealValue')
    plt.plot(X, func(X, a, b), 'red', label = 'CurveLine')
    plt.title(station, fontdict={'family' : 'Times New Roman', 'size'   : 16})
    plt.ylabel('Clocks($\mu S$)', fontdict={'family' : 'Times New Roman', 'size'   : 16})
    plt.xlabel('Time', fontdict={'family' : 'Times New Roman', 'size'   : 16})
    plt.yticks(fontproperties = 'Times New Roman', size = 14)
    plt.xticks(fontproperties = 'Times New Roman', size = 14)
    plt.legend(prop={'family' : 'Times New Roman', 'size'   : 16})
    plt.savefig('./stationClocks/' + station + '.ps', dpi = 200)
    plt.show()
    

    二、法二

    解决字体不一致的方法
    将全局字体改为Times New Roman

    import matplotlib.pyplot as plt
    plt.rc('font',family='Times New Roman')
    

    解决Times New Roman加粗的问题

    del matplotlib.font_manager.weight_dict['roman']
    matplotlib.font_manager._rebuild()
    

    三、一些参数

    matplotlib说明框中字体粗细
    用默认的字体时,'weight’的变化是可以改变字体粗细的,以下是代码

    import matplotlib.pyplot as plt
    
    styles=['normal','italic','oblique']
    weights=['ultralight', 'light', 'normal', 'regular', 'book', 'medium', 'roman', 'semibold', 'demibold', 'demi', 'bold', 'heavy', 'extra bold', 'black']
    plt.figure(figsize=(15,3)) 
    for i in range(len(styles)):
        for j in range(len(weights)):
            font={'style':styles[i],'weight':weights[j]}
            plt.subplot(len(styles),len(weights),i*len(weights)+j+1) 
            plt.plot([1, 2, 3, 4], [1, 4, 9, 16], 'b', label='VGG-16')
            plt.legend(loc='upper right', prop=font)
    plt.savefig('style.png')
    

    一旦把字体设定为’Times New Roman’,'weight’就没办法调节说明框中字体的粗细

    import matplotlib.pyplot as plt
    
    styles=['normal','italic','oblique']
    weights=['ultralight', 'light', 'normal', 'regular', 'book', 'medium', 'roman', 'semibold', 'demibold', 'demi', 'bold', 'heavy', 'extra bold', 'black']
    plt.figure(figsize=(15,3)) 
    for i in range(len(styles)):
        for j in range(len(weights)):
            font={'family' : 'Times New Roman','style':styles[i],'weight':weights[j]}
            plt.subplot(len(styles),len(weights),i*len(weights)+j+1) 
            plt.plot([1, 2, 3, 4], [1, 4, 9, 16], 'b', label='VGG-16')
            plt.legend(loc='upper right', prop=font)
    plt.savefig('style.png')
    

    四、Matplotlib画各种论文图

    # coding=utf-8
    
    import numpy as np
    import matplotlib.pyplot as plt
    
    plt.rcParams['font.sans-serif'] = ['Arial']  # 如果要显示中文字体,则在此处设为:SimHei
    plt.rcParams['axes.unicode_minus'] = False  # 显示负号
    
    x = np.array([1, 2, 3, 4, 5, 6])
    VGG_supervised = np.array([2.9749694, 3.9357018, 4.7440844, 6.482254, 8.720203, 13.687582])
    VGG_unsupervised = np.array([2.1044724, 2.9757383, 3.7754183, 5.686206, 8.367847, 14.144531])
    ourNetwork = np.array([2.0205495, 2.6509762, 3.1876223, 4.380781, 6.004548, 9.9298])
    
    # label在图示(legend)中显示。若为数学公式,则最好在字符串前后添加"$"符号
    # color:b:blue、g:green、r:red、c:cyan、m:magenta、y:yellow、k:black、w:white、、、
    # 线型:-  --   -.  :    ,
    # marker:.  ,   o   v    <    *    +    1
    plt.figure(figsize=(10, 5))
    plt.grid(linestyle="--")  # 设置背景网格线为虚线
    ax = plt.gca()
    ax.spines['top'].set_visible(False)  # 去掉上边框
    ax.spines['right'].set_visible(False)  # 去掉右边框
    
    
    plt.plot(x, VGG_supervised, marker='o', color="blue", label="VGG-style Supervised Network", linewidth=1.5)
    plt.plot(x, VGG_unsupervised, marker='o', color="green", label="VGG-style Unsupervised Network", linewidth=1.5)
    plt.plot(x, ourNetwork, marker='o', color="red", label="ShuffleNet-style Network", linewidth=1.5)
    
    group_labels = ['Top 0-5%', 'Top 5-10%', 'Top 10-20%', 'Top 20-50%', 'Top 50-70%', ' Top 70-100%']  # x轴刻度的标识
    plt.xticks(x, group_labels, fontsize=12, fontweight='bold')  # 默认字体大小为10
    plt.yticks(fontsize=12, fontweight='bold')
    # plt.title("example", fontsize=12, fontweight='bold')  # 默认字体大小为12
    plt.xlabel("Performance Percentile", fontsize=13, fontweight='bold')
    plt.ylabel("4pt-Homography RMSE", fontsize=13, fontweight='bold')
    plt.xlim(0.9, 6.1)  # 设置x轴的范围
    plt.ylim(1.5, 16)
    
    # plt.legend()          #显示各曲线的图例
    plt.legend(loc=0, numpoints=1)
    leg = plt.gca().get_legend()
    ltext = leg.get_texts()
    plt.setp(ltext, fontsize=12, fontweight='bold')  # 设置图例字体的大小和粗细
    
    plt.savefig('./filename.svg', format='svg')  # 建议保存为svg格式,再用inkscape转为矢量图emf后插入word中
    plt.show()
    

    在这里插入图片描述

    展开全文
  • 点击蓝字关注极市平台来源丨和鲸社区编辑丨极市平台极市导读本文分享了50个令人眼前一亮的Matplotlib可视化项图表,每个图表都有其相应的生成代码,并将它们分为了关联、偏差、排序、分布、组成、变化、分组等7个...
    ↑ 点击蓝字 关注极市平台a726201af10a91df63d0588820395552.gif来源丨和鲸社区编辑丨极市平台

    极市导读

     

    本文分享了50个令人眼前一亮的Matplotlib可视化项图表,每个图表都有其相应的生成代码,并将它们分为了关联、偏差、排序、分布、组成、变化、分组等7个类别,是科研作图时很好的参考。

    本文由lqy上传,翻译自machinelearningplus.com来源链接(含代码):https://www.machinelearningplus.com/plots/top-50-matplotlib-visualizations-the-master-plots-python/项目链接(中文翻译+代码):

    https://www.kesci.com/home/project/5f4b3f146476cf0036f7e51e

    数据集链接:

    https://www.kesci.com/home/dataset/5f4f6d4e3a0788003c4df2ce

    作者认为,一个优秀的可视化,需要具备以下特征:1、在不歪曲事实的情况下传达正确和必要的信息。2、设计简单,不必太费力就能理解它。3、从审美角度支持信息而不是掩盖信息。4、信息没有超负荷。而以下可视化,都是基于上面这4点制作的这些图表根据可视化目标的7个不同情景进行分组,目录如下:e93777977a40bc9c768a5ac478217cf4.png以上所有图表的生成代码都包含在项目中,并且包含了一些必要的讲解。1d30465c13078e363de169350dc73ca2.png

    关联(Correlation)

    散点图(Scatter plot)

    75ac9d7017831e0b7b9026905f109514.png

    带边界的气泡图(Bubble plot with Encircling)

    d117ee6d357c10fe429bd49986bfaa50.png

    带线性回归最佳拟合线的散点图 

    (Scatter plot with linear regression line of best fit)

    faf56e3fb9c3674fb8dee2befb38b673.pngec1164ad5089df7d6434f6969e0efbf4.png

    抖动图 (Jittering with stripplot)

    b58c1e4a64e16bc2ce4dfe0ae4496aa7.png

    计数图 (Counts Plot)

    35310ee1712f08a100ee84808fb97530.png

    边缘直方图 (Marginal Histogram)

    dc9be370cac73456121cfdea924cc580.png

    边缘箱形图 (Marginal Boxplot)

    dda512d0f3837aedf3509064db59647f.png

    相关图 (Correllogram)

    81ed6a45812c25a4e0dc396921353c49.png

    矩阵图 (Pairwise Plot)

    73e70b9db344b9df6d413a5c459fc73a.pngf3ef3c301b6e9f87aa50b898d8d6db1c.png

    偏差(Deviation)

    发散型条形图 (Diverging Bars)

    09ae17e72ae1366f59e30d7c9b9565c9.png

    发散型文本 (Diverging Texts)

    bee7a73a5f14a0111541b859c46c802f.png

    发散型包点图 (Diverging Dot Plot)

    d1126ecd3c0e6481416f8f7e13a64127.png

    带标记的发散型棒棒糖图

    (Diverging Lollipop Chart with Markers)

    176fa266a65e67863e278d3f96b69a1b.png

    面积图 (Area Chart)

    928c60e4c81ef2c3e803ac248a977538.png

    排序(Ranking)

    有序条形图 (Ordered Bar Chart)

    1905803526b7ced66f2b5da5b0b5bb49.png

    棒棒糖图 (Lollipop Chart)

    f1ccb25550dd1b85b3793b0b7fd0f952.png

    包点图 (Dot Plot)

    d5b9d4d105f4854d7d284bd3175d2145.png

    坡度图 (Slope Chart)

    42249d225a07599940e1c924410753a2.png

    哑铃图 (Dumbbell Plot)

    82348aba6ff248d3f5360e73418f257d.png

    分布(Distribution)

    连续变量的直方图 (Histogram for Continuous Variable)

    7d23cb310c7a47eff343dcff66eeb905.png

    类型变量的直方图

    (Histogram for Categorical Variable)

    be03d3afda0c438c8232951cc1c7a118.png

    密度图 (Density Plot)

    ac324ff47620281b5e0b975640b67af2.png

    直方密度线图

    (Density Curves with Histogram)

    7eb6bef2bebe63f268a7b13e01f99d02.png

    Joy Plot

    c53a4bb68aef1d5dda8a150ff2b4fce1.png

    分布式包点图

    (Distributed Dot Plot)

    a061dc993bf8fecc48d7b2045bf2e2b8.png

    箱形图 (Box Plot)

    71a5ea6b30b9f904359bfe731cc0b9c3.png

    包点+箱形图 (Dot + Box Plot)

    495b4ea91d0ed55932af7affa730d4d7.png

    小提琴图 (Violin Plot)

    86669ced7bd13b56b521621876fb539a.png

    人口金字塔

    (Population Pyramid)

    1bb6f7e850210a9c6c0c0d64ae7ab2da.png

    分类图 (Categorical Plots)

    2c921599b60b7adaa38d7a7c84c1e1bd.png0e0750e9843e54ce1b75f9e5ee17d769.png

    组成(Composition)

    华夫饼图 (Waffle Chart)

    8e333adc9b21a7b69977afa7b7bc2084.png60c76bec3f7532c4e5f52b01b16c612f.png

    饼图 (Pie Chart)

    0a340172534b3e263366d293c9e12b6b.png1ba2f3a6da39afbcb586b64b4c72c385.png

    树形图 (Treemap)

    f96ecaa5cf52cf96e9b7e564012fb4fa.png

    条形图 (Bar Chart)

    328ab4c3e76080b82659317b783d7835.png

    变化(Change)

    时间序列图 (Time Series Plot)

    4c97db64c7bdf8a708be4629448fe9e7.png

    带波峰波谷标记的时序图

    (Time Series with Peaks and Troughs Annotated)

    f0b52415c9992751219f799b76adbef1.png

    自相关和部分自相关图

    (Autocorrelation (ACF) and Partial Autocorrelation (PACF) Plot)

    018ce5dd8d4dd157dbb88c8724c3d21d.png

    交叉相关图

    (Cross Correlation plot)

    bbee42a6bb737905379a1e457510660f.png

    时间序列分解图

    (Time Series Decomposition Plot)

    82fabbb1ce6c19b26ae9dcde43b4b0f5.png

    多个时间序列

    (Multiple Time Series)

    4c9c4395776b881cda3c1dc41ff0b497.png

    使用辅助 Y 轴来绘制不同范围的图形

    (Plotting with different scales using secondary Y axis)

    8b6efbf4a46e8f45f8045ebafdb07395.png

    带有误差带的时间序列

    (Time Series with Error Bands)

    cd88feba370383b9f72dadc9a1566537.png6bb33d2c8a33a7f797596e58784b3b98.png

    堆积面积图

    (Stacked Area Chart)

    4bb160124e9f3683eef555961cb8d711.png

    未堆积的面积图

    (Area Chart UnStacked)

    0a84422994307b9c58749d3e71320032.png

    日历热力图

    (Calendar Heat Map)

    2538c34022e73bc249b0a8140b2a732e.png

    季节图

    (Seasonal Plot)

    81e3ebc016a62f10f0e3429d23ac93bb.png

    分组(Groups)

    树状图 (Dendrogram)

    daddea92c27c421ad89d6610afc1b900.png

    簇状图 (Cluster Plot)

    1ea89e2af8e1f8606430229a24e9d9ab.png

    安德鲁斯曲线 (Andrews Curve)

    a606deec407af782009a8bba5f1ff1c5.png

    平行坐标

    (Parallel Coordinates)

    7615fef31fb893ad5e21524694c1b98f.png

    推荐阅读

    • 简单好用的深度学习论文绘图专用工具包:Science Plot

    • Matlab用户都需要的一张画图速查表

    • 2020 年度最佳的23个机器学习项目!(附源代码)

    添加极市小助手微信(ID : cvmart2),备注:姓名-学校/公司-研究方向-城市(如:小极-北大-目标检测-深圳),即可申请加入极市目标检测/图像分割/工业检测/人脸/医学影像/3D/SLAM/自动驾驶/超分辨率/姿态估计/ReID/GAN/图像增强/OCR/视频理解等技术交流群:每月大咖直播分享、真实项目需求对接、求职内推、算法竞赛、干货资讯汇总、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企视觉开发者互动交流~c5be7b578f99b3abb76fa367d70ad389.png△长按添加极市小助手527764971bafe3f6206de35a3047160b.png△长按关注极市平台,获取最新CV干货觉得有用麻烦给个在看啦~  a06433a69c625e7b50d5c9448954844f.gif
    展开全文
  • 本文分享了50个令人眼前一亮的Matplotlib可视化项图表,每个图表都有其相应的生成代码,并将它们分为了关联、偏差、排序、分布、组成、变化、分组等7个类别,是科研作图时很好的参考。 本文由lqy上传,翻译自...
  • 本文分享了50个令人眼前一亮的Matplotlib可视化项图表,每个图表都有其相应的生成代码,并将它们分为了关联、偏差、排序、分布、组成、变化、分组等7个类别,是科研作时很好的参考。本文来源和鲸社区,仅用于学术...
  • Python matplotlib绘图 自己的科研风?

    千次阅读 2019-05-06 21:52:14
    Python matplotlib绘图 如何科研风?风点线图、散点图、网络图、条形图 dpiccolo,个人绘图笔记 个人常用的内容:绘图风格、字体类型、大小、marker、图例位置 官网最直接、全面:Pyplot function overview 1...

空空如也

空空如也

1 2 3 4 5 6
收藏数 102
精华内容 40
关键字:

matplotlib科研绘图