1.绘制直方图:
numpy.histogram_bin_edges支持的策略参见:
https://numpy.org/doc/stable/reference/generated/numpy.histogram_bin_edges.html#numpy.histogram_bin_edges

matplotlib.pyplot.hist(<x>[,bins=None,range=None,density=False,bottom=0,histtype='bar',align='mid',orientation='vertical',rwidth=None,log=False,color=None,label=None,stacked=False,**kwargs])#参数说明:None表示默认值由全局配置决定x:指定数据集;为数组/数组列表bins:指定bin的数量/各个bin的范围;可为int/list/str默认值为rcParams["hist.bins"]=10#所有区间均为左闭右开如果为int,指定的是bin的数量,且各个bin的宽度都相同如果为list,指定的是各个bin的区间截止点,如bins=[1,2,3,4]表示区间依次为[1,2),[2,3),[3,4]如果为str,则应是numpy.histogram_bin_edges支持的策略range:指定各个bin的范围;为tuple#只在没有指定bins的情况下生效density:指定y轴刻度是否表示频率;为bool;默认为False(y轴刻度表示频度)*此处:频率=区间内数据数据/(数据总数*区间宽度),即单位长度上的平均频率bottom:指定y坐标的起始位置(y轴基线);默认为0histtype:指定矩形的样式;为str;可选值见下:"bar":默认值,传统的条形直方图,如果有多个数据集,则各数据集在各bin中并排排列"barstacked":当数据集为1个,和"bar"相同;当数据集为多个,则将数据集垂直堆叠"step":未填充的线条形式"stepfilled":填充的线条形式,效果与"bar"类似align:指定区间截断点位于条段的什么位置;可为"left"/"mid"(默认值)/"right"orientation:指定条段的方向;可为"vertical"(默认值)/"horizontal"rwidth:指定条段的相对宽度;如果不指定,则自动计算得到log:指定y轴是否以指数显示刻度;为bool;默认为Falsecolor:指定条段的颜色;默认为"blue"#功能与facecolor相同,指定1个即可;如果两者都指定,则取facecolor的值label:指定图例的文字说明stacked:指定是否为堆积状图;为bool;默认为False#当两个数据集相似时,堆积在一起会把第1个数据的显示相对缩小kwargs:指定其他属性(见下图)

>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> plt.rcParams['font.sans-serif']=['Microsoft YaHei']
>>> x=np.random.randint(0,101,100)
>>> bins=np.arange(0,101,10)#分布区间[0,10),[10,20),...,[90,100]
>>> plt.hist(x,bins=bins,linewidth=0.5,edgecolor='k')#边缘线宽0.5,颜色为黑色
(array([12.,  9., 10.,  6.,  6.,  4., 10., 16., 12., 15.]), array([  0,  10,  20,  30,  40,  50,  60,  70,  80,  90, 100]), <a list of 10 Patch objects>)
>>> plt.xlim(0,100)#x 轴刻度范围
(0.0, 100.0)
>>> plt.title('简单直方图示例')
Text(0.5, 1.0, '简单直方图示例')
>>> plt.xlabel('x axis label')
Text(0.5, 0, 'x axis label')
>>> plt.ylabel('y axis label')
Text(0, 0.5, 'y axis label')
>>> plt.show()#结果见下图

>>> import matplotlib.pyplot as plt
>>> import numpy as np
>>> plt.rcParams['font.sans-serif']=['Microsoft YaHei']
>>> hist1=np.random.randint(0,100,100)
>>> hist2=np.random.randint(0,100,100)
>>> x=[hist1,hist2]
>>> colors=['orchid', 'deepskyblue']
>>> labels=['hist1','hist2']
>>> bins=range(0,101,10)
>>> #绘制有2份数据的直方图,数据集等其他参数可使用list传递,也可以使用两次hist()
... plt.hist(x,bins=bins,color=colors,stacked=True,label=labels)
(array([[ 7.,  6.,  6., 13., 10., 12., 10., 17., 10.,  9.],[21., 19., 13., 23., 18., 21., 20., 20., 21., 24.]]), array([  0,  10,  20,  30,  40,  50,  60,  70,  80,  90, 100]), <a list of 2 Lists of Patches objects>)
>>> plt.title('堆积的直方图示例')
Text(0.5, 1.0, '堆积的直方图示例')
>>> plt.xlabel('x axis label')
Text(0.5, 0, 'x axis label')
>>> plt.ylabel('y axis label')
Text(0, 0.5, 'y axis label')
>>> plt.legend(loc="upper left")
<matplotlib.legend.Legend object at 0x000001491437B3C8>
>>> plt.show()#堆积状图,结果见下图1
>>> plt.hist(x,bins=bins,color=colors,label=labels)
(array([[ 7.,  6.,  6., 13., 10., 12., 10., 17., 10.,  9.],[14., 13.,  7., 10.,  8.,  9., 10.,  3., 11., 15.]]), array([  0,  10,  20,  30,  40,  50,  60,  70,  80,  90, 100]), <a list of 2 Lists of Patches objects>)
>>> plt.show()#非堆积状图,结果见下图2



2.绘制饼图:
wedgeprops可指定的属性参见:
https://matplotlib.org/api/_as_gen/matplotlib.patches.Wedge.html#matplotlib.patches.Wedge
textprops可指定的属性参见:
https://matplotlib.org/api/text_api.html?highlight=text#matplotlib.text.Text

matplotlib.pyplot.pie(<x>[,explode=None,labels=None,colors=None,autopct=None,pctdistance=0.6,shadow=False,labeldistance=1.1,startangle=None,radius=1,counterclock=True,wedgeprops=None,textprops=None,center=(0,0),frame=False,rotatelabels=False
])#参数说明:None表示默认值由全局配置决定或没有x:指定各扇形块占据的百分比;为数组,数组元素为num(无%)explode:指定各扇形块脱离饼图的距离;为数组;默认全部为0#脱离的距离指扇形顶点到圆心的距离要求:len(explode)=len(x)labels:指定各扇形块上的文本标签;为str list;默认无colors:指定各扇形块的颜色;为listautopct:指定如何显示百分比;为str/function;默认不显示例:autopct='%1.1f%%'表示float,保留1位小数,并添加%pctdistance:指定圆心与autopct生成的文本间的距离;为floatshadow:指定是否为扇形添加阴影效果labeldistance:指定label与圆心的距离;为numstartangle:将饼图按照逆时针旋转指定的角度;为float(可正可负)起始位置为右偏上36°radius:指定饼图的半径;为floatcounterclock:指定是否按逆时针对扇形图进行排列;为boolwedgeprops:指定饼图对象的其他属性;为dicttextprops:指定文本对象的其他属性center:指定圆心的坐标frame:指定是否显示x/y轴外框rotatelabels:指定是否按角度调整每个扇形块的label#实例:
>> import matplotlib.pyplot as plt
>> plt.rcParams['font.sans-serif']=['Microsoft YaHei']
>> x=[10,30,45,15]
>> labels=['Java','Go','Python','C++']
>> colors=['red','yellow','blue','green']
>> plt.pie(x,labels=labels,colors=colors,labeldistance=1.1,rotatelabels=True)
>> plt.title('饼状图按角度调整 labels 示例')
>> plt.show()#结果见下图

>> import matplotlib.pyplot as plt
>> plt.rcParams['font.sans-serif']=['Microsoft YaHei']
>> x=[10,30,45,15]
>> labels=['Java','Golang','Python','C++']
>> colors=['red','yellow','blue','green']
>> plt.pie(x,labels=labels,colors=colors,labeldistance=1.1,explode=[0.3,0,0,0])
>> plt.title('饼状图突出显示扇形块示例')
>> plt.legend(bbox_to_anchor=(1, 1))
>> plt.show()#结果见下图

>>> import matplotlib.pyplot as plt
>>> plt.rcParams['font.sans-serif']=['Microsoft YaHei']
>>> x=[10,30,45,15]
>>> labels=['Java','Golang','Python','C++']
>>> colors=['red','yellow','blue','green']
>>> plt.pie(
...     x,                        #每个扇形块所占比例
...     labels=labels,            #扇形块文本标签
...     colors=colors,            #扇形块颜色
...     labeldistance=1.1,        #扇形块标签距圆心的距离
...     explode=[0.3, 0, 0, 0],   #第1个扇形块突出显示
...     autopct='%1.1f%%',        #显示百分比,保留1位小数
...     pctdistance=0.5           #百分比文本距离圆心的距离
... )
>>> plt.show()#结果见下图

import matplotlib.pyplot as plt
>>> plt.rcParams['font.sans-serif']=['Microsoft YaHei']
>>> x=[10,30,45,15]
>>> labels=['Java','Golang','Python','C++']
>>> colors=['red','yellow','blue','green']
>>> plt.pie(
...     x,                           #每个扇形块所占比例
...     labels=labels,               #扇形块文本标签
...     colors=colors,               #扇形块颜色
...     labeldistance=1.1,           #扇形块标签距离圆心的距离
...     explode=[0.3, 0, 0, 0],      #第1个扇形块突出显示
...     autopct='%1.1f%%',           #显示百分比,保留1位小数
...     pctdistance=0.6,             #百分比文本距离圆心的距离
...     shadow=True,                 #显示阴影效果
...     wedgeprops={                 #为每个扇形添加属性
...         'width': 0.7,              #扇形宽度0.7
...         'edgecolor': '#98F5FF',    #扇形边缘线颜色
...         'linewidth': 3             #扇形边缘线宽度
...     },
...     textprops={                  #为文字添加属性
...         'fontsize': 13,            #文字大小
...         'fontweight': 'bold',      #文字粗细
...         'color': 'k'               #文字颜色,黑色
...     }
... )
>>> plt.title('饼状图自定义每个扇形和文字属性示例',fontweight='bold')
>>> plt.legend(bbox_to_anchor=(1,1),borderpad=0.6)
>>> plt.show()#结果见下图


3.绘制等值线图(等高线图)
(1)绘制方法:

[<CS>]=matplotlib.pyplot.contour(<X>,<Y>,<Z>[,<level>,**kwargs])
[<CS>]=matplotlib.pyplot.contourf(<X>,<Y>,<Z>[,<levle>,**kwargs])#2者的区别在于contourf()会填充等值线间的区域,contour()不会#注意:如果线条颜色为单色,则高度值<0的等高线默认为虚线#参数说明:X,Y,Z:分别指定数据点的x/y/z坐标;均为matrixlevels:指定绘制哪些等高线;可为int/数组;默认为5如果是int,则使用levels个数据间隔,即绘制levels+1条等高线#系统自动选择绘制哪些等值线如果是数组,则绘制那些值等于levels中某元素的等高线#数组中元素必须按递增顺序排列CS:返回等值线集对象(ContourSet对象)kwargs:指定其他参数(见下图)

>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> x=np.arange(-2.0,2.0,0.01)
>>> y=np.arange(-2.0,2.0,0.01)
>>> m,n=np.meshgrid(x,y)#生成网格点坐标矩阵
#指定函数来计算高度,也可以直接使用2维数组储存高度:
>>> def f(a,b):
...     return (1-b**5+a**5)*np.exp(-a**2-b**2)
...
#绘制等高线图,2个数据间隔,3条等高线
>>> plt.contour(m,n,f(m,n),2)
<matplotlib.contour.QuadContourSet object at 0x0000018415A4AAC8>
>>> plt.show()#结果见下图1
#绘制等高线图,8个数据间隔,9条等高线(注意有1条不在数据范围内)
>>> plt.contour(m,n,f(m,n),8,colors='k')
<matplotlib.contour.QuadContourSet object at 0x000002A3CDEC4308>
>>> plt.show()#结果见下图2
>>> plt.contourf(m,n,f(m,n),8)
<matplotlib.contour.QuadContourSet object at 0x0000020650950C88>
>>> plt.show()#结果见下图3
>>> plt.contour(m,n,f(m,n),x)
<matplotlib.contour.QuadContourSet object at 0x00000206535412C8>
>>> plt.show()#结果见下图4
>>> plt.contourf(m,n,f(m,n),x)
<matplotlib.contour.QuadContourSet object at 0x000002064E150748>
>>> plt.show()#结果见下图5






(2)标记等高线图:
CabelText类参见:
https://matplotlib.org/api/contour_api.html#matplotlib.contour.ClabelText

matplotlib.pyplot.clabel(<CS>[,*args,**kwargs]):标记等高线的高度值#参数说明:CS:等值线集对象,即.contour()/.contourf()的返回值args,kwargs:指定其他参数(见下图1)#实例:
>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> x=np.arange(-2.0,2.0,0.01)
>>> y=np.arange(-2.0,2.0,0.01)
>>> m,n=np.meshgrid(x,y)
>>> def f(a, b):
...     return (1-b**5+a**5)*np.exp(-a**2-b**2)
...
#绘制等高线图:8个数据间隔,颜色为黑色
>>> C=plt.contour(m,n,f(m,n),8,colors='k')
#添加标记:标记处不显示轮廓线,颜色为黑红绿蓝四种,保留2位小数
>>> plt.clabel(C,inline=True,colors=['k','r','g','b'],fmt='%1.2f')
>>> plt.show()#结果见下图2


Python 第三方模块 绘图 Matplotlib模块 绘图2(直方图,饼图,等值线图)相关推荐

  1. Python模拟登录,matplotlib模块,Python模拟太阳-地球-月亮运动模型

    前言 利用python模拟太阳-地球-月亮运动模型. 让我们愉快地开始吧~ 开发工具 **Python版本:**3.6.4 相关模块: pygame模块: matplotlib模块: numpy模块: ...

  2. Python 数据分析三剑客之 Matplotlib(八):等高线 / 等值线图的绘制

    CSDN 课程推荐:<Python 数据分析与挖掘>,讲师刘顺祥,浙江工商大学统计学硕士,数据分析师,曾担任唯品会大数据部担任数据分析师一职,负责支付环节的数据分析业务.曾与联想.亨氏.网 ...

  3. Python 第三方模块 绘图 Matplotlib模块 简介与配置

    颜色信息查看:https://matplotlib.org/gallery/color/color_demo.html 一些常用图像的绘制代码:25个常用Matplotlib图的Python代码,收藏 ...

  4. 【python 数据挖掘】基于matplotlib的绘图一:四种基本图形及其参数

    python绘图1 1.折线图 2.散点图 3.条形图 4.饼状图 图形化最大的优点就是直观,图像比表格能够传递更多信息,但是一张优秀的统计图,首先要保证正确性,这里的正确是指用合理的统计图来表达原始 ...

  5. 掷骰子python代码_Python 使用matplotlib模块模拟掷骰子

    掷骰子 骰子类 # die.py 骰子类模块 from random import randint class Die(): """骰子类""&quo ...

  6. 系统学习Python——2D绘图库Matplotlib:绘图函数matplotlib.pyplot.plot(plt.plot)

    分类目录:<系统学习Python>总目录 matplotlib.pyplot是Matplotlib的基于状态的接口.它提供了一种隐式的.类似MATLAB的绘图方式.它还会在您的屏幕上打开图 ...

  7. Python爬虫实战,matplotlib模块,Python实现网易云音乐歌单数据可视化

    前言 利用Python实现网易云音乐歌单数据可视化.废话不多说. 让我们愉快地开始吧~ 开发工具 Python版本: 3.6.4 相关模块: requests模块 pandas模块 matplotli ...

  8. python绘图-Matplotlib模块

    1.matplotlib是什么? python底层的绘图工具,是一个 Python的2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形. 通过 Matplotlib,开发者可以仅 ...

  9. python 柱状图 居中_python matplotlib模块: bar(柱状图)

    plt模块的bar方法可以帮助我们绘制竖着的柱状图. 功能非常强大, 使用起来非常简单, 详细注释放在源码. 其中各种颜色的hex值可以从: 各种颜色hex值获取 源码: # coding=utf-8 ...

最新文章

  1. JVM 垃圾回收器工作原理及使用实例介绍
  2. 深度优先搜索找迷宫的出路
  3. python设置list_python之list
  4. [九度][何海涛] 旋转数组的最小数字
  5. 诺基亚贝尔完成5G毫米波NR-DC和200MHz载波带宽测试
  6. jquery生成一个li_如何使用jQuery从字符串数组生成UL Li列表?
  7. 不想“被out”?来看看现在的开发者都在做什么
  8. Linux里隐藏的计算器,你知道它的奥秘吗?
  9. linux使用mount命令挂载、umount命令取消挂载
  10. ISAKMP包数据属性格式
  11. 教师计算机培训心得体会范文,教师计算机教育培训学习心得体会
  12. 圆通电子面单接口对接
  13. 自定义控件学习笔记(三)Paint详解
  14. dht11 java_树莓派使用DHT11温湿度传感器
  15. Python办公——根据Excel数据批量生成二维码
  16. T470 Win10下触摸板手势
  17. 二维列表的转置(行列互换,首行变首列,尾行变尾列)
  18. 海外:国外最受欢迎的5个电子邮件服务网站
  19. 三招解决!电脑密码忘记了怎么办?新手都能学会
  20. 数据结构(一)--ArrayList and LinkerList

热门文章

  1. Unity3D 实用技巧 - 快速学会模型合理导入 Unity3D 引擎
  2. 选定的启动映像未进行验证 请按enter键 尝试引导至下一个
  3. stacking模型融合
  4. Web开发中的图片管理:策略与实践
  5. AD PCB实用常用快捷键总结
  6. 多智能体强化学习及其在游戏AI上的应用与展望
  7. break和continue
  8. 微博java实现原理_【转】URL短地址压缩算法 微博短地址原理解析 (Java实现)...
  9. 02【IDEA、数据类型转换、运算符、方法】
  10. SpringAOP实战