精华内容
下载资源
问答
  • 图例的字体格式在prop中进行设置,赋值font1可以是一个字典,包含各个属性及其对应值,属性包括family(字体)、size(字体大小)等常用属性,更详细的解释可参考matplotlib手册中关于 legend prop 的解释。   ...

    设置输出的图片大小:

     

    figsize = 11,9
    figure, ax = plt.subplots(figsize=figsize)

     

     

     

    画简单的折线图,同时标注线的形状、名称、粗细:

     

    A,=plt.plot(x1,y1,'-r',label='A',linewidth=5.0,ms=10)

     

    其中线条样式以及颜色设置可参考:https://blog.csdn.net/code_segment/article/details/79217700,个人觉得介绍非常详尽。

    线条粗细使用linewidth设置,对应线条上的marker大小设置为ms参数。因为有时候粗线条,所以对应marker大小也需要增加。

    如果想要标记marker为空心,可以在后面加上 markerfacecolor='none'

     

    设置图例以及对应属性:

     

    legend = plt.legend(handles=[A,B],prop=font1)

    图例的字体格式在prop中进行设置,赋值font1可以是一个字典,包含各个属性及其对应值,属性包括family(字体)、size(字体大小)等常用属性,更详细的解释可参考matplotlib手册中关于legend prop的解释。

     


    一种比较简单的设置为:

     

    font1 = {'family' : 'Times New Roman',
    'weight' : 'normal',
    'size'   : 23,
    }

     

    坐标轴刻度密度/间隔设置:

    ax.xaxis.set_major_locator(MultipleLocator(10))

    括号中的数字为对应的刻度间隔值,y轴对应类似。

     

    坐标轴刻度值属性设置:

     

    plt.tick_params(labelsize=23)
    labels = ax.get_xticklabels() + ax.get_yticklabels()
    [label.set_fontname('Times New Roman') for label in labels]

    其中tick_params中可设置一系列属性,包括刻度值字体大小、方向、大小,颜色等一系列属性,具体可参见手册中关于tick_params的解释。

     

    比较特殊的是,其中并没有对刻度值的字体进行设置的属性,所以我们需要使用下面两行进行设置,在最初使用plt.subplots中有得到一个返回值ax,我们使用ax.get_xticklabels()以及ax.get_yticklabels()来得到所有的刻度值,并使用set_fontname函数来设置属性。

     

    坐标轴名称以及对应字体属性设置:

     

    plt.xlabel('round',font2)
    plt.ylabel('value',font2)

    这种比较简单,第一个参数为坐标轴名称,第二个参数也是一个字典参数,和上文提及的dict font1格式相同。

     

    有时候,因为调整了坐标刻度的字体大小,影响了坐标轴label的显示。所以我们需要通过调整坐标轴边距来显示label

    plt.subplots_adjust(left = 0.15,bottom=0.128)

    下面我们给出一个比较简单的画图过程:

     

    #--coding:utf-8--
    import  matplotlib.pyplot as plt
    
    #数据设置
    x1 =[0,5000,10000, 15000, 20000, 25000, 30000, 35000, 40000, 45000, 50000, 55000];
    y1=[0, 223, 488, 673, 870, 1027, 1193, 1407, 1609, 1791, 2113, 2388];
    
    x2 =[0,5000,10000, 15000, 20000, 25000, 30000, 35000, 40000, 45000, 50000, 55000];
    y2=[0, 214, 445, 627, 800, 956, 1090, 1281, 1489, 1625, 1896, 2151];
    
    #设置输出的图片大小
    figsize = 11,9
    figure, ax = plt.subplots(figsize=figsize)
    
    #在同一幅图片上画两条折线
    A,=plt.plot(x1,y1,'-r',label='A',linewidth=5.0)
    B,=plt.plot(x2,y2,'b-.',label='B',linewidth=5.0)
    
    #设置图例并且设置图例的字体及大小
    font1 = {'family' : 'Times New Roman',
    'weight' : 'normal',
    'size'   : 23,
    }
    legend = plt.legend(handles=[A,B],prop=font1)
    
    #设置坐标刻度值的大小以及刻度值的字体
    plt.tick_params(labelsize=23)
    labels = ax.get_xticklabels() + ax.get_yticklabels()
    [label.set_fontname('Times New Roman') for label in labels]
    
    #设置横纵坐标的名称以及对应字体格式
    font2 = {'family' : 'Times New Roman',
    'weight' : 'normal',
    'size'   : 30,
    }
    plt.xlabel('round',font2)
    plt.ylabel('value',font2)
    
    #将文件保存至文件中并且画出图
    plt.savefig('figure.eps')
    plt.show()

     

     

     

     

     

     

     

    最终生成的图片效果如下:


     

    更多的画图代码参考也可见手册中的Examples using matplotlib.pyplot.plot,可以翻到超链接跳转页面的最下方,有很多画图的示例,点进去即为对应实现代码。可以找到适用的代码实现方式。pyplot.subplots下也有很多很好的示例!

    展开全文
  • python matplotlib 中文设置

    万次阅读 2019-12-15 13:04:12
    font_list=sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist]) for i in font_list: print (i) 会有很多,然后找一个字体设置一下就好了 只要这一句就好了,字体自己可以修改 ...

    发现一个比较好的方法来设置中文

    # 查看字体库
    import matplotlib
    font_list=sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist])
    
    for i in font_list:
        print (i)

    会有很多,然后找一个字体设置一下就好了

    只要这一句就好了,字体自己可以修改

    # 设置字体
    plt.rcParams['font.family'] = ['Arial Unicode MS']

    平时我用的方法是这样的

    my_font = font_manager.FontProperties(fname='./simhei.ttf')
    
    # 在每次设置属性的时候 都要写上: fontproperties=my_font
    # 如:
    
    plt.xlabel('x轴标记', fontproperties=my_font)
    plt.ylabel('y轴标记', fontproperties=my_font)
    plt.title('标题', fontproperties=my_font)

    感觉很麻烦,而使用了上面的方法 这个属性就不用设置了!!!

    展开全文
  • python matplotlib 显示图像

    万次阅读 多人点赞 2017-12-29 21:34:47
    python matplotlib 显示图像 首先需要importimport os from PIL import Image import matplotlib.pyplot as plt显示一幅彩色图片img = Image.open(os.path.join('images', '2007_000648' + '.jpg'))plt.figure(...

    python matplotlib 显示图像
    首先需要import

    import os
    from PIL import Image
    import matplotlib.pyplot as plt

    显示一幅彩色图片

    img = Image.open(os.path.join('images', '2007_000648' + '.jpg'))
    
    plt.figure("Image") # 图像窗口名称
    plt.imshow(img)
    plt.axis('on') # 关掉坐标轴为 off
    plt.title('image') # 图像题目
    plt.show()

    这里写图片描述

    显示一副灰度图像

    img = Image.open(os.path.join('images', '2007_000648' + '.jpg'))
    img = img.convert('L')
    
    plt.figure("Image")
    # 这里必须加 cmap='gray' ,否则尽管原图像是灰度图(下图1),但是显示的是伪彩色图像(下图2)(如果不加的话)
    plt.imshow(img,cmap='gray')
    plt.axis('on')
    plt.title('image')
    plt.show()

    这里写图片描述

    这里写图片描述

    一个窗口显示多幅图像,要用到subplot

    import os
    import numpy as np
    from PIL import Image
    import matplotlib.pyplot as plt
    
    img = Image.open(os.path.join('images', '2007_000648' + '.jpg'))
    gray = img.convert('L')
    r,g,b = img.split()
    img_merged = Image.merge('RGB', (r, g, b))
    
    
    plt.figure(figsize=(10,5)) #设置窗口大小
    plt.suptitle('Multi_Image') # 图片名称
    plt.subplot(2,3,1), plt.title('image')
    plt.imshow(img), plt.axis('off')
    plt.subplot(2,3,2), plt.title('gray')
    plt.imshow(gray,cmap='gray'), plt.axis('off') #这里显示灰度图要加cmap
    plt.subplot(2,3,3), plt.title('img_merged')
    plt.imshow(img_merged), plt.axis('off')
    plt.subplot(2,3,4), plt.title('r')
    plt.imshow(r,cmap='gray'), plt.axis('off')
    plt.subplot(2,3,5), plt.title('g')
    plt.imshow(g,cmap='gray'), plt.axis('off')
    plt.subplot(2,3,6), plt.title('b')
    plt.imshow(b,cmap='gray'), plt.axis('off')
    
    plt.show()
    

    这里写图片描述

    展开全文
  • 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绘制gif动图以及保存

    万次阅读 多人点赞 2019-01-04 15:22:39
    python matplotlib绘制gif动图以及保存 标签: python matplotlib 谨以此文纪念我两天来的悲剧 昨天我用lstm拟合sin曲线,看到别人画的做的动图很好看,并且还能保存下来,所以我也想做着玩一下,但是没想到在网上...
  • python matplotlib 画图保存图片简单例子

    万次阅读 多人点赞 2018-03-21 15:10:04
    保存的时候遇到过保存空白图像的问题,是因为将plt.savefig('./test2.jpg')放到了plt.show()之后,...import matplotlib.pyplot as plt t = np.arange(0, 69, 1) plt.plot(t, t, 'r', t, t**2, 'b') label =...
  • python matplotlib库的官方文档,下载了顺便分享一下.
  • python matplotlib 颜色组对应
  • python matplotlib模块,是扩展的MATLAB的一个绘图工具库。他可以绘制各种图形,可是最近最的一个小程序,得到一些三维的数据点图,就学习了下python中的matplotlib模块,如何绘制三维图形。 初学者,可能对这些第...
  • Python matplotlib修改默认字体

    千次阅读 2019-05-14 19:52:17
    Python matplotlib修改默认字体 matplotlib库作为Python常用的数据可视化库,默认字体居然不支持中文字体,必须得吐槽一下~ 闲言少叙,开始正文 方法1:在plot中指定prop参数 使用matplotlib.font_manager下的...
  • python matplotlib如何显示中文

    千次阅读 2019-07-06 18:53:04
    python matplotlib如何显示中文 今天在matplotlib绘图时尝试输出中文发现报错 现将解决方式记录如下 在.py文件最上面加上 #-*- coding: utf-8 -*- 以修改编码方式 然后在文件头部加上 matplotlib.rcParams['...
  • python matplotlib 显示中文matplotlib
  • Python Matplotlib 柱状图加数值

    万次阅读 2019-10-02 20:21:36
    Python Matplotlib 柱状图加数值 柱状图加数值也是一项常规操作,这里采用的函数是text,主要获取加入text的位置与数值即可,因此,详细代码如下: 这里写了auto_label与auto_text,两个都可以用,本人更喜欢用auto...
  • 安装python Matplotlib

    千次阅读 2014-05-18 13:21:17
    转:使用 python Matplotlib 库 绘图 及 相关问题  使用 python Matplotlib 库绘图      转:http://blog.csdn.net/daniel_ustc/article/details/9714163 Matplotlib的安装 matplotlib 是...
  • python matplotlib 绘制 线性拟合 csv文件下载地址: 链接: https://pan.baidu.com/s/1Jm4Z8wlskkloGYeeVNkOXg 提取码: p25v """ 线性拟合 绘制趋势线 """ import numpy as np import datetime as dt import ...
  • Python matplotlib 中填充颜色

    千次阅读 2019-10-03 14:53:44
    Python matplotlib 中填充颜色 matplotlib中填充颜色主要是两个函数,一个是fill,一个是fill_between,这里讲一下详细的关键字, 这里关键字主要有facecolor填充色, where填充条件, alpha透明度,interpolate求...
  • Python matplotlib绘制折线图简单实现

    千次阅读 2019-03-05 22:28:18
    Python matplotlib绘制折线图简单实现
  • python matplotlib 绘制饼状图 """ 绘制饼状图 """ import matplotlib.pyplot as mp # 准备数据 values = [26, 17, 21, 29, 7, 10] spaces = [0.05, 0.01, 0.01, 0.01, 0.01, 0.01] labels = ['Python', '...
  • Python matplotlib绘制箱线图简单实现

    千次阅读 2019-03-04 22:21:58
    Python matplotlib绘制箱线图简单实现
  • python matplotlib图中插入表格

    千次阅读 2020-04-08 15:59:44
    python matplotlib图中插入表格解决问题示例代码结果 解决问题 在matplotlib画的图里插入表格数据。使用到pyplot和gridspec函数。 示例代码 #导入库 import numpy as np import matplotlib.pyplot as plt %...
  • Python Matplotlib绘图之BaseMap

    千次阅读 2019-06-14 18:33:42
    Python Matplotlib绘图之BaseMap 1. Python安装库,需要安装proj, geos(brew install proj, brew install geos)以及basemap,其中basemap无法用pip install安装,需要下载解压后,进入目录输入python3 setup.py ...
  • python matplotlib 绘制3D曲面图

    千次阅读 2020-07-04 08:15:14
    python matplotlib 绘制等高线 """ 绘制3D曲面图 """ import numpy as np import matplotlib.pyplot as mp from mpl_toolkits.mplot3d import Axes3D # 准备数据 n = 1000 x, y = np.meshgrid(np.linspace(-3, 3, ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 55,264
精华内容 22,105
关键字:

pythonmatplotlib

python 订阅