-
饼图-Matplotlib一幅图掌握全部饼图知识点
2021-04-12 12:35:55案例:芝麻信用失信用户分析 关于pie函数的参数我们讲了这么多,光讲不练假把式,我们接下来通过案例,来绘制一个个性化的...import matplotlib.pyplot as plt # 设置绘图的主题风格(不妨使用R中的ggplot分隔) plpie函数参数解读
plt.pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=None, radius=None, counterclock=True, wedgeprops=None, textprops=None, center=(0, 0), frame=False)
x:指定绘图的数据;
explode:指定饼图某些部分的突出显示,即呈现爆炸式;
labels:为饼图添加标签说明,类似于图例说明;
colors:指定饼图的填充色;
autopct:自动添加百分比显示,可以采用格式化的方法显示;
pctdistance:设置百分比标签与圆心的距离;
shadow:是否添加饼图的阴影效果;
labeldistance:设置各扇形标签(图例)与圆心的距离;
startangle:设置饼图的初始摆放角度;
radius:设置饼图的半径大小;
counterclock:是否让饼图按逆时针顺序呈现;
wedgeprops:设置饼图内外边界的属性,如边界线的粗细、颜色等;
textprops:设置饼图中文本的属性,如字体大小、颜色等;
center:指定饼图的中心点位置,默认为原点
frame:是否要显示饼图背后的图框,如果设置为True的话,需要同时控制图框x轴、y轴的范围和饼图的中心位置;
案例参考:芝麻信用失信用户分析
关于pie函数的参数我们讲了这么多,光讲不练假把式,我们接下来通过案例,来绘制一个个性化的饼图。关于绘图数据,我们借用芝麻信用近300万失信人群的样本统计数据,该数据显示,从受教育水平上来看,中专占比25.15%,大专占比37.24%,本科占比33.36%,硕士占比3.68%,剩余的其他学历占比0.57%。对于这样一组数据,我们该如何使用饼图来呈现呢?
import matplotlib.pyplot as plt # 设置绘图的主题风格(不妨使用R中的ggplot分隔) plt.style.use('ggplot') # 构造数据 edu = [0.2515,0.3724,0.3336,0.0368,0.0057] labels = ['中专','大专','本科','硕士','其他'] explode = [0,0.1,0,0,0] # 用于突出显示大专学历人群 colors=['#9999ff','#ff9999','#7777aa','#2442aa','#dd5555'] # 自定义颜色 # 中文乱码和坐标轴负号的处理 plt.rcParams['font.sans-serif'] = ['Microsoft YaHei'] plt.rcParams['axes.unicode_minus'] = False # 将横、纵坐标轴标准化处理,保证饼图是一个正圆,否则为椭圆 plt.axes(aspect='equal') # 控制x轴和y轴的范围 plt.xlim(0,4) plt.ylim(0,4) # 绘制饼图 plt.pie(x = edu, # 绘图数据 explode=explode, # 突出显示大专人群 labels=labels, # 添加教育水平标签 colors=colors, # 设置饼图的自定义填充色 autopct='%.1f%%', # 设置百分比的格式,这里保留一位小数 pctdistance=0.8, # 设置百分比标签与圆心的距离 labeldistance = 1.15, # 设置教育水平标签与圆心的距离 startangle = 180, # 设置饼图的初始角度 radius = 1.5, # 设置饼图的半径 counterclock = False, # 是否逆时针,这里设置为顺时针方向 wedgeprops = {'linewidth': 1.5, 'edgecolor':'green'},# 设置饼图内外边界的属性值 textprops = {'fontsize':12, 'color':'k'}, # 设置文本标签的属性值 center = (1.8,1.8), # 设置饼图的原点 frame = 1 )# 是否显示饼图的图框,这里设置显示 # 删除x轴和y轴的刻度 plt.xticks(()) plt.yticks(()) # 添加图标题 plt.title('芝麻信用失信用户教育水平分布') # 显示图形 plt.show()
转载自公众号:“每天进步一点点2015”,
-
解决python中用matplotlib画多幅图时出现图形部分重叠的问题
2020-09-19 03:16:36今天小编就为大家分享一篇解决python中用matplotlib画多幅图时出现图形部分重叠的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 -
python 柱状图 内部颜色_matplotlib画柱状图,设置同一幅图上的柱子呈现不同颜色...
2020-11-20 23:44:42本示例演示在一个figure对象中画两幅柱状图,一幅纵向(plt.bar),一副横向(plt.barh)#导入numpy和matplotlib库>>> import numpy as np>>> import matplotlib.pyplot as plt#生成x轴刻度>>> x=np.arange(6)#生成y轴...本示例用numpy库的随机函数构造x和y轴坐标,用matplotlib库画图。
本示例演示在一个figure对象中画两幅柱状图,一幅纵向(plt.bar),一副横向(plt.barh)
#导入numpy和matplotlib库
>>> import numpy as np
>>> import matplotlib.pyplot as plt
#生成x轴刻度
>>> x=np.arange(6)
#生成y轴的值
>>> y=np.random.randint(0,10,6)
>>> print(x)
[0 1 2 3 4 5]
>>> print(y)
[3 8 3 4 8 3]
#创建一个figure画图对象
>>> plt.figure()
#用subplot方法绘制子图
>>> plt.subplot(121) #subplot方法中有3个int参数,分别代表1行,2列,最后一个1代表正在绘制第1个子图
>>> plt.bar(x,y,width=0.5,color=['r','g','b'])#color参数传入颜色列表,可以在一幅图中显示不同颜色
>>> plt.subplot(122)#括号中最后一个1代表正在绘制第2个子图
>>> plt.bar(x,y,0.5,color=['r','g','b'],alpha=0.5)
>>> plt.show()
每幅图柱子颜色不相同
-
python matplotlib.Rectangle在一幅图片里作出一个或多个矩形框
2020-11-19 16:34:50import matplotlib.pyplot as plt import matplotlib.patches as patches # 根据坐标作图 def plot_pic(): img_path = "000000000650.jpg" txt_path = "000000000650.txt" img = plt.imread(img_path) h,w,c =...import matplotlib.pyplot as plt import matplotlib.patches as patches # 根据坐标作图 def plot_pic(): img_path = "000000000650.jpg" txt_path = "000000000650.txt" img = plt.imread(img_path) h,w,c = img.shape txt_lines = open(txt_path).readlines() coords = [] for line in txt_lines: new_line = line.strip().split(" ")[1:] # [x_center,y_center,width,hieght]坐标转换成[left,top,width,height] width = float(new_line[2]) * w height = float(new_line[3]) * h left = float(new_line[0]) * w - width / 2 top = float(new_line[1]) * h - height / 2 coords.append([left,top,width,height]) fig, ax = plt.subplots(1, 1) ax.imshow(img) currentAxis = fig.gca() # for index, coord in enumerate(coords): rect = patches.Rectangle((coord[0], coord[1]), coord[2], coord[3], linewidth=1, edgecolor='r',facecolor='none') currentAxis.add_patch(rect) plt.show() print(0) if __name__ == "__main__": plot_pic()
其中
000000000650.jpg图片如下:
000000000650.txt内容如下:15 0.519398 0.544087 0.476359 0.572061 2 0.501859 0.820726 0.996281 0.332178 #[class x_center y_center width height] 复制请删除这一行
通过运行上面的程序,得到如下结果:
rectangle函数的参数解释如下:Rectangle(xy,width,heigth,angle=0,**kwargs) 参数 xy:2元组,矩形左上角坐标 width:矩形的宽度 height:矩形的高度 angle:float,可选,矩形相对于x轴逆时针旋转角度,默认0 fill:bool,可选,是否填充矩形
-
matplotlib 柱状图_Python基础教程 matplotlib实现雷达图和柱状图
2020-11-27 08:27:05注:主要是设置add_subplot(133),分别代表一幅图中子图像行数,列数,和位置函数和参数说明:'bo-':分别代表标记颜色,标记形状,和线型,,‘bo’代表blue和实心圆set_rlim这是参数一个值域范围set_thetagrids方法...Python基础教程记录 - 使用matplotlib实现雷达图和柱状图。
注:主要是设置add_subplot(133),分别代表一幅图中子图像行数,列数,和位置
函数和参数说明:
'bo-':分别代表标记颜色,标记形状,和线型,,‘bo’代表blue和实心圆
set_rlim这是参数一个值域范围
set_thetagrids方法用于设置极坐标角度网格线显示
grid为是否画出圆形内部网格
fill为填充颜色和填充透明度
代码如下:
'''
matplotlib雷达图和柱状图
'''#coding:utf-8
import matplotlib
matplotlib.use('qt4agg')
from matplotlib.font_manager import *
import numpy as np
import matplotlib.pyplot as plt
myfont = FontProperties(fname='/home/linuxidc/.local/share/fonts/文泉驿正黑.ttf')
matplotlib.rcParams['axes.unicode_minus']=False#=======自定义设置开始============
#标签
labels = np.array(['Ubuntu','Debian','CentOS','openSUSE','linuxidc','linuxidc.com','Oracle'])
#数据个数
dataLenth = 7
#数据
data = np.array([8,9,5,8,9,9,10])
#========自定义设置结束============angles = np.linspace(0, 2*np.pi, dataLenth, endpoint=False)
data = np.concatenate((data, [data[0]])) # 闭合 # #将数据结合起来
angles = np.concatenate((angles, [angles[0]])) # 闭合fig = plt.figure()
ax = fig.add_subplot(121, polar=True)# polar参数!!121代表总行数总列数位置
ax.plot(angles, data, 'bo-', linewidth=1)# 画线四个参数为x,y,标记和颜色,闲的宽度
ax.fill(angles, data, facecolor='r', alpha=0.5)# 填充颜色和透明度
ax.set_thetagrids(angles * 180/np.pi, labels, fontproperties=myfont)
ax.set_title("Linux公社",fontproperties=myfont)
ax.set_rlim(0,10)
ax.grid(True)a=[1,0.5,8,]
ax=fig.add_subplot(133)
name=['a','b','c']
ax.bar(range(len(a)),a,color='rgb',tick_label=name)
ax.set_title("www.linuxidc.com",fontproperties=myfont)
plt.show()效果图如下:
更多Python相关信息见Python 专题页面 https://www.linuxidc.com/topicnews.aspx?tid=17
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx本文永久更新链接地址:https://www.linuxidc.com/Linux/2019-03/157683.htm
看了本文就点下在看吧↓↓↓
-
python matplotlib绘制折线图_python使用matplotlib绘制折线图教程
2020-11-20 19:52:25matplotlib简介matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图。而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。它的文档相当完备,并且Gallery页面中有... -
python使用matplotlib绘制折线图_python使用matplotlib绘制折线图教程
2020-12-04 02:55:39matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图。而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。它的文档相当完备,并且Gallery页面中有上百幅缩略图,... -
matplotlib柱状图_Python教程:matplotlib实现雷达图和柱状图
2020-11-28 10:43:41分别代表一幅图中子图像行数,列数,和位置函数和参数说明:'bo-':分别代表标记颜色,标记形状,和线型,,‘bo’代表blue和实心圆set_rlim这是参数一个值域范围set_thetagrids方法用于设置极坐标角度网格线显示grid... -
matplotlib 标签_一图入门matplotlib
2020-11-28 10:51:25Matplotlib是Python里可视化的基础包,可以很方便地绘制二维,三维的图表,作图风格接近MATLAB,所以称为matplotlib。...结合图形,我们先解释一些概念和基础API,最后使用完整的代码绘制这幅图。后台回复“绘... -
python matplotlib画折线图出现连线混乱_python使用matplotlib绘制折线图教程
2021-02-02 23:31:28matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图。而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。它的文档相当完备,并且Gallery页面中有上百幅缩略图,... -
【案例】用Matplotlib绘制曲线图
2019-11-18 13:52:12用Matplotlib绘制一幅曲线图的基础知识,也可以作为Matplotlib的绘图模板来使用噢! 1. # 绘制一条sin曲线和一条cos曲线 2. # 步骤如下: 3. 4. # 1 调用程序包 5. import matplotlib as mpl 6. import ... -
python使用matplotlib绘制折线图教程
2021-01-20 04:46:06它的文档相当完备,并且Gallery页面中有上百幅缩略图,打开之后都有源程序。因此如果你需要绘制某种类型的图,只需要在这个页面中浏览/复制/粘贴一下,基本上都能搞定。 在Linux下比较著名的数据图工具还有gnuplot,... -
【Matplotlib】详解图像各个部分
2018-01-07 14:57:06首先一幅Matplotlib的图像组成部分介绍。 在matplotlib中,整个图像为一个Figure对象。在Figure对象中可以包含一个或者多个Axes对象。每个Axes(ax)对象都是一个拥有自己坐标系统的绘图区域。所属关系如下: 下面... -
Matplotlib
2018-08-23 23:28:21官网帮助文档地址:https://matplotlib.org/tutorials/introductory/pyplot.html ...每一个 pyplot 函数都会使图形发生一些变化,例如:创建一幅图形、在一幅图中创建一个绘图区域、在绘图区域中绘制一些线... -
python35 利用matplotlib的subplot画多幅图
2017-07-15 15:28:11一 画直方图import matplotlib.pyplot as plt plt.figure("hist") arr=images.flatten() n, bins, patches = plt.hist(arr, bins=256, normed=1,edgecolor='None',...plt.show()二 利用subplot画多幅图import mat -
matplotlib绘图
2018-06-11 17:28:59http://blog.csdn.net/pipisorry/article/details/37742423matplotlib介绍 matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的...它的文档相当完备,并且Gallery页面 中有上百幅缩略图,打开之后都... -
pythonmatplotlib共享绘图区域_『Python』matplotlib共享绘图区域坐标轴
2020-12-04 04:14:221. 共享单一绘图区域的坐标轴有时候,我们想将多张图形放在同一个绘图区域,不想在每个绘图区域只绘制一幅图形。这时候,就可以借助共享坐标轴的方法实现在一个绘图区域绘制多幅图形的目的。import numpy as np... -
python使用matplotlib绘制折线图
2020-01-27 19:39:29Matplotlib是一个Python工具箱,用于科学计算的数据可视化。借助它,Python可以绘制如Matlab和Octave多种多样的数据图形。...它的文档相当完备,并且Gallery页面中有上百幅缩略图,打开之后都有源... -
【matplotlib】详解图像各个部分
2018-02-03 22:53:13首先一幅Matplotlib的图像组成部分介绍。 在matplotlib中,整个图像为一个Figure对象。在Figure对象中可以包含一个或者多个Axes对象。每个Axes(ax)对象都是一个拥有自己坐标系统的绘图区域。所属关系如下: 下面... -
Matplotlib绘图(一)
2019-09-22 22:27:55matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图。而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。它的文档相当完备,并且Gallery页面 中有上百幅缩略... -
matplotlib绘图基础
2014-07-13 20:02:53http://blog.csdn.net/pipisorry/article/details/37742423matplotlib介绍 matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令...它的文档相当完备,并且Gallery页面 中有上百幅缩略图,打开之后都 -
为什么matplotlib显示opencv图像不正常
2017-10-08 09:41:13在前面的《数字图像的加载、显示和输出》中提到,opencv对多个图片输出在同一个窗口并没有直接的支持...使用matplotlib将4幅图像显示在一个窗口的代码如下:# coding=utf-8 import cv2 import matplotlib.pyplot as plt