栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【matplotlib】浅谈python图形可视化练习经验分享

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【matplotlib】浅谈python图形可视化练习经验分享

前言

本篇文章主要是分享matplotlib折线图、散点图、误差图、轮廓图、柱状图、饼图、面积图、直方图、雷达图、热力图、词云图、箱型图多子图绘制过程的方法和注意要点


示例图


 模块库

导入十二个子图所需的模块库

matplotlib用于绘制图形

import matplotlib.pylot as plt           #安装模块库  pip install matplotlib

numpy、random用于生成随机数据

import numpy as np                #安装模块库:pip install numpy
import random                     #系统自带

logging、jieba、wordcloud只用于用于子图11的词云图

import logging                              #系统自带
import jieba                                #安装模块库:pip install jieba
from wordcloud import WordCloud             #安装模块库:pip install wordcloud

注意:wordcloud若无法顺利安装,请自行查询百度、CSDN安装方式

参考链接:wordcloud安装过程及常见问题汇总


画布图形设置
fig,ax = plt.subplots(num='matplotlib 二维图形设计练习',
                      nrows=3,ncols=4,
                      figsize=(20,10),dpi=80,
                      edgecolor=None,
                      frameon=False
                      )
ax1,ax2,ax3,ax4,ax5,ax6,ax7,ax8,ax9,ax10,ax11,ax12 = ax.flatten()

plt.subplots()        创建子图表

num                      设置画布名称

nrows、ncols       设置横纵向子图数量

figsize、dpi          设置画布大小和分辨率

edgecolor             画布边框颜色

frameon                是否绘制画布图框

参考链接:python 可视化:fig, ax = plt.subplots()画多表图的3中常见样例 & 自定义图表格式

ax.flatten()        设置大小相同的子图

参考链接:plt.subplots中的ax = ax.flatten()


中文显示设置

simhei为window自带字体,默认字体文件存放处:C:WindowsFonts(如果不一样,可自行百度查找)

matplotlib一共有三种中文显示方式

方式一:把下面的代码放在导入模块后面,

import matplotlib.pyplot as plt
import numpy as np
import random
import logging                              #只有图11要用
import jieba                                #只有图11要用
from wordcloud import WordCloud             #只有图11要用


#中文显示设置
plt.rcParams['font.sans-serif'] = ['SimHei']      # 用于显示中文
plt.rcParams['axes.unicode_minus'] = False        # 用于解决保存图像是负号‘-’显示为方框的问题
plt.rcParams['font.size'] = '16'                  #用于设置中文大小

方式二:在每个需要用到中文的地方,手动设置中文字体

from matplotlib.font_manager import FontProperties  

fonts = FontProperties(fname=r"c:windowsfontssimsun.ttc", size=20) 

plt.title('标题中文',fontproperties=fonts)
plt.annotate('注释中文',fontproperties=fonts)
plt.legend()...
plt.xticklabel...
plt.yticklabel...    等等

 方式三:

执行这串代码然后将simhei.ttf 字体文件放到这里面:matplotlibmpl-datafontsttf

import matplotlib
print(matplotlib.get_data_path())  # 数据路径

然后退回到这个地方matplotlibmpl-data,打开“matplotlibrc”

Ctrl + R 可以快速定位!!!!

#font.family:

#font.sans-serif:

#axes.unicode_minus:

把这三个地方前面的“#”注释符号去掉,然后改成下面这样

font.family:sans-serif

font.sans-serif:SimHei, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif

axes.unicode_minus:False,#作用就是解决负号'-'显示为方块的问题

 在代码前面加入这个

from matplotlib.font_manager import _rebuild

资料参考链接:

matplotlib中文乱码的两种解决方案

Matplotlib 显示中文

 方式二最为麻烦,方式三分享代码时,执行代码的主机也需这样设置,建议采用方式一


折线图


图形绘制特点

该图以绘制cos()和sin()两条线说明折线图的线型设置

增加图例、标题、轴名称等辅助说明图形

修改标题位置,X轴位置,隐藏部分边框用于美化图形

添加注释,用于突出图形某个特殊值


设置数据,用于两条线的X轴和Y轴

#设置数据
x1 = np.linspace(0,2 * np.pi,100)
y1 = np.linspace(0,10,20)

折线图的绘制语法:plt.plot()或ax.plot()

plt.plot(x,y,color,linestyle,linewidth,marker,**kw)

#绘制图形
ax1.plot(x1,np.sin(x1),color="b",linestyle='--',label='$sin(x)$')
ax1.plot(x1,np.cos(x1),'r-.',label='$cos(x)$')

color:颜色

linestyle:线型

linewidth:线宽

label:折线名称

marker:线条标记

注意:折线图中的颜色和线型、标记可以简化缩写


设置折线图的X轴、Y轴数值范围

面向过程版:

#设置X、Y轴范围

ax1.set_xlim(0,2*np.pi)
ax1.set_ylim(-1,1)

面向对象版:

#设置X、Y轴范围

plt.xlim(0,2*np.pi)
plt.ylim(-1,1)

np.pi:圆周率“π”的意思


设置图例

#设置图例

ax1.legend(loc=0,frameon=False)

location(loc):图例位置,0代表自动取最佳的位置

frameon:是否绘制图例边框


设置坐标轴刻度值

面向过程版:

#坐标轴刻度

ax1.set_xticks([0, np.pi/2, np.pi, 3*np.pi/2, 2*np.pi])

面向对象版:

#坐标轴刻度

plt.xticks([0, np.pi/2, np.pi, 3*np.pi/2, 2*np.pi])

设置坐标轴名称

面向过程版:

#坐标轴名称

ax1.set_ylabel("y_plot")

面向对象版:

#坐标轴名称

plt.ylabel("y_plot")

修改X轴刻度标签

#刻度标签

ax1_np_pi = [' ', r'$frac{pi}{2}$', r'$pi$', r'$frac{3pi}{2}$', r'$2pi$']
ax1.set_xticklabels(ax1_np_pi)

第一个值为“ ”,主要是为了隐藏X轴在Y轴交界处的刻度值


设置折线图边框

#边框设置

ax1.spines['bottom'].set_position(('axes',0.5))
ax1.spines['top'].set_color('none')
ax1.spines['right'].set_color('none')

set_position(('axes'),0.5):将X轴往上移动到Y轴的50%,既平分Y轴

set_color(none"):将需要隐藏的边框颜色设置为“None”,就可以实现隐藏效果


添加标记,突出特殊值

#添加标记

#添加标记点
tx = 3*np.pi/4
ty = np.sin(tx)
ax1.scatter(tx,ty,
            s=15,
            facecolor='b',
            zorder=3
            )

#添加标记线
ax1.plot([tx,tx],[0,ty],color='lightgray',linestyle=':')

#添加注释
ax1.annotate(r'$y = sin(frac{3pi}{4})$',
             xy=(tx,ty),xytext=(tx+1,ty),
             arrowprops=dict(facecolor='r',
                             edgecolor='r',
                             shrink=0.15,
                             headwidth=10,
                             headlength=8,
                             width=2))

标记点参数解释:

tx、ty:标记点的X轴和Y轴坐标点

ax1.scatter:matplotlib绘制散点的语法,下方有散点图绘制部分详细说明,这里不做解释

s:标记点大小

facecolor:标记点颜色

zorder:标记点边框大小

标记线参数解释:

底层逻辑就是通过绘制一条折线来作为标记线,只是这条折线只有(tx,0),(tx,ty)两个点而已,在通过设置线条颜色和线型来美化标记线

注释参数解释:

r'XXXXXXX':注释内容,可自由设置

xy:注释起始位置

xytext:注释文本位置

arrowprops:设置注释参数


折线图标题

下方有标题部分详细说明,这里不做详细解释

#图形标题

ax1.set_title('折线图(plot)',
              fontsize='large',
              fontweight='light',
              fontstyle='oblique',
              loc='right')

fontsize:文字大小

fontweight:文字位置

fontstyle:文字风格

loc:标题位置


完整代码

import matplotlib.pyplot as plt
import numpy as np

#中文设置
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用于显示中文
plt.rcParams['axes.unicode_minus'] = False  # 用于解决保存图像是负号‘-’显示为方框的问题


#设置画布
fig = plt.figure(figsize=(10,5),dpi=60)
ax1 = fig.add_subplot(111)

#折线图
#设置数据
x1 = np.linspace(0,2 * np.pi,100)
y1 = np.linspace(0,10,20)
#绘制图形
ax1.plot(x1,np.sin(x1),color="b",linestyle='--',label='$sin(x)$')
ax1.plot(x1,np.cos(x1),'r-.',label='$cos(x)$')
#设置X、Y轴范围
ax1.set_xlim(0,2*np.pi)
ax1.set_ylim(-1,1)
#设置图例
ax1.legend(loc=0,frameon=False)
#坐标轴刻度
ax1.set_xticks([0, np.pi/2, np.pi, 3*np.pi/2, 2*np.pi])
#坐标轴名称
ax1.set_ylabel("y_plot")
#刻度标签
ax1_np_pi = [' ', r'$frac{pi}{2}$', r'$pi$', r'$frac{3pi}{2}$', r'$2pi$']
ax1.set_xticklabels(ax1_np_pi)
#边框设置
ax1.spines['bottom'].set_position(('axes',0.5))
ax1.spines['top'].set_color('none')
ax1.spines['right'].set_color('none')
#添加标记
#添加标记点
tx = 3*np.pi/4
ty = np.sin(tx)
ax1.scatter(tx,ty,
            s=15,
            facecolor='b',
            zorder=3
            )
#添加标记线
ax1.plot([tx,tx],[0,ty],color='lightgray',linestyle=':')
#添加注释
ax1.annotate(r'$y = sin(frac{3pi}{4})$',
             xy=(tx,ty),xytext=(tx+1,ty),
             arrowprops=dict(facecolor='r',
                             edgecolor='r',
                             shrink=0.15,
                             headwidth=10,
                             headlength=8,
                             width=2))
#图形标题
ax1.set_title('折线图(plot)',
              fontsize='large',
              fontweight='light',
              fontstyle='oblique',
              loc='right')


plt.show()

参考资料:详见文末


散点图

 


图形绘制特点

图一的气泡图也是散点图的一种,只是通过气泡大小以及不同的颜色来区分散点

图二使用不同的标记(marker)和颜色来区分不同样本的离散程度

图三是典型的散点图绘制

隐藏边框和坐标轴用于美化图形

更换标题颜色主要是突出标题可个性化设置

图形绘制底层原理一致,本篇章主讲气泡图的绘制


生成随机数据

#生成随机数据

x2 = np.random.normal(0,1,100)
y2 = np.random.normal(-2,1,100)

每次执行代码,自动生成不同的气泡图

注意:记得需要导入random模块

import random

设置数据的颜色

#设置不同数据的颜色

colors = abs(np.random.rand(100))

np.random.rand():生成符合正态分布的随机样本值


设置散点的大小

#设置散点的大小随数据而变化

size = 150 * abs(np.random.randn(100))

np.random.randn():生产符合正态分布的随机浮点数


散点图的绘制语法:plt.scatter或ax.scatter

plt.scatter(x,y,size,color,alpha,**kw)

#散点图1

ax2.scatter(x2,y2,s=size,c=colors,alpha=0.7)

s,c皆为size、color的简写

alpha:透明度


隐藏刻度值和刻度标签

面向过程版

#隐藏X轴刻度值和刻度标签

ax2.set_xticks([])

#隐藏Y轴刻度值和刻度标签

ax2.set_yticks([])

面向对象版

#隐藏X轴刻度值和刻度标签

plt.xticks([])

#隐藏Y轴刻度值和刻度标签

plt.yticks([])

隐藏边线

通过for循环隐藏上面、右边、下面、左边的边框

#隐藏边线

for i in ['top', 'right', 'bottom', 'left']:
    ax2.spines[i].set_visible(False)

也可以隐藏部分边框,就像这样!

ax2.spines['top'].set_color('none')
ax2.spines['right'].set_color('none')
ax2.spines['bottom'].set_color('none')
ax2.spines['left'].set_color('none')

设置散点图标题

#设置标题

ax2.set_title('散点图(scatter)',
              fontsize='x-large',
              fontweight='light',
              c='r')

fontsize:文本大小

fontweight:文本位置

color:标题颜色


完整代码

import matplotlib.pyplot as plt
import numpy as np
import random

#中文设置
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用于显示中文
plt.rcParams['axes.unicode_minus'] = False  # 用于解决保存图像是负号‘-’显示为方框的问题

#设置画布
fig = plt.figure(figsize=(8,5),dpi=60)
ax2 = fig.add_subplot(111)

#散点图
#生成随机数据
x2 = np.random.normal(0,1,100)
y2 = np.random.normal(-2,1,100)
#设置不同数据的颜色
colors = abs(np.random.rand(100))
#设置散点的大小随数据而变化
size = 150 * np.random.randn(100)
#散点图1
ax2.scatter(x2,y2,s=size,c=colors,alpha=0.7)
#隐藏X轴刻度值和刻度标签
ax2.set_xticks([])
#隐藏Y轴刻度值和刻度标签
ax2.set_yticks([])

#隐藏边线
for i in ['top', 'right', 'bottom', 'left']:
    ax2.spines[i].set_visible(False)

#设置标题
ax2.set_title('散点图(scatter)',
              fontsize='x-large',
              fontweight='light',
              c='r')


plt.show()

参考资料:详见文末


误差图


图形绘制特点

除了美观,也没啥特点了.....(其实也不美观哈哈哈)


误差图的绘制语法:plt.errorbar或ax.errorbar

plt.errorbar(x,y,xerr,yerrr,ecolor,elinewidth,capsize,fmt,ms,mfc,mec,**kw)

ax3.errorbar(range(20),np.random.random(20),
             yerr=0.2,
             fmt='ok',
             ms=7,
             ecolor='lightgray',
             elinewidth=3,
             capsize=5,
             capthick=3
             )

xerr,yerr:X轴、Y轴误差范围

ecolor:误差线颜色

elinewidth:误差线大小

capsize:误差横杠大小

capthick:误差横杠厚度

fmt:误差点形状

ms:误差点大小

mfc:误差点颜色

mes:误差线边框颜色


设置坐标轴

#设置X轴范围

ax3.set_xlim(-1,21)

#将X轴移动到顶部

ax3.xaxis.set_ticks_position('top')

设置轴刻度值

#设置X轴刻度值

ax3.set_xticks([i for i in range(0,21,4)])

#隐藏Y轴刻度值和刻度标签

ax3.set_yticks([])

隐藏边框

#去掉边框

for i in ['top', 'right', 'bottom', 'left']:
    ax3.spines[i].set_color('none')

设置标题

#设置标题

ax3.set_title('误差图(errorbar)')

设置网格

#设置网格

ax3.grid(axis='x',linestyle='-.')

这里只设置了X轴的网格和网格线条类型


完整代码

import matplotlib.pyplot as plt
import numpy as np
import random

#中文设置
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用于显示中文
plt.rcParams['axes.unicode_minus'] = False  # 用于解决保存图像是负号‘-’显示为方框的问题

#设置画布
fig = plt.figure(figsize=(8,5),dpi=120)
ax3 = fig.add_subplot(111)

#误差图
ax3.errorbar(range(20),np.random.random(20),
             yerr=0.2,
             fmt='ok',
             ms=7,
             ecolor='lightgray',
             elinewidth=3,
             capsize=5,
             capthick=3
             )
#设置X轴范围
ax3.set_xlim(-1,21)
#将X轴移动到顶部
ax3.xaxis.set_ticks_position('top')
#设置X轴刻度值
ax3.set_xticks([i for i in range(0,21,4)])
#隐藏Y轴刻度值和刻度标签
ax3.set_yticks([])
#去掉边框
for i in ['top', 'right', 'bottom', 'left']:
    ax3.spines[i].set_color('none')
#设置标题
ax3.set_title('误差图(errorbar)')
#设置网格
ax3.grid(axis='x',linestyle='-.')


plt.show()

参考资料,详见文末


轮廓图


设置X轴Y轴Z轴数据

#设置数据范围

x4 = np.linspace(-10,10,100)
y4 = np.linspace(-10,10,100)
X,Y = np.meshgrid(x4,y4)
Z = np.sin(X) ** 100 + np.cos(10 + Y) + np.sqrt(X**2 + Y**2)

np.linspace():生成等距样本值


绘制轮廓图语法:plt.contour或ax.contour

plt.contour(x,y,z,**kw)

#绘制图形

clabel_ax4 = ax4.contour(X,Y,Z,7)
cc = ax4.imshow(Z,extent=[-10,10,-10,10],origin='lower',alpha=0.5)
ax4.clabel(clabel_ax4,fontsize=8)

7:轮廓线数

extent:轮廓值范围

origin:坐标轴起始位置(默认左上角)

alpha:轮廓图透明度

fontsiZe:


设置刻度值范围

#设置刻度值范围

ax4.set_xticks([i for i in range(-10,11,5)])
ax4.set_yticks([i for i in range(-10,11,5)])

用for循环生成-10~10的等距刻度值


设置标题

#设置标题

ax4.set_title('轮廓图(contour)',
              bbox=dict(boxstyle='round,pad=0.5',fc='w',ec='k',lw=1,alpha=0.5))

设置轮廓图颜色条

#设置颜色条

fig.colorbar(colorbar_ax4,ax=ax4)

完整代码

import matplotlib.pyplot as plt
import numpy as np

#中文设置
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用于显示中文
plt.rcParams['axes.unicode_minus'] = False  # 用于解决保存图像是负号‘-’显示为方框的问题

#设置画布
fig = plt.figure(figsize=(8,5),dpi=120)
ax4 = fig.add_subplot(111)


#轮廓图1
#设置数据范围
x4 = np.linspace(-10,10,100)
y4 = np.linspace(-10,10,100)
X,Y = np.meshgrid(x4,y4)
Z = np.sin(X) ** 100 + np.cos(10 + Y) + np.sqrt(X**2 + Y**2)
#绘制图形
clabel_ax4 = ax4.contour(X,Y,Z,7)
cc = ax4.imshow(Z,extent=[-10,10,-10,10],origin='lower',alpha=0.5)
ax4.clabel(clabel_ax4,fontsize=8)
#设置刻度值范围
ax4.set_xticks([i for i in range(-10,11,5)])
ax4.set_yticks([i for i in range(-10,11,5)])
#设置标题
ax4.set_title('轮廓图(contour)',
              bbox=dict(boxstyle='round,pad=0.5',fc='w',ec='k',lw=1,alpha=0.5))
#设置颜色条
fig.colorbar(cc,ax=ax4)



plt.show()

参考资料:

Matplotlib轮廓图 -Matplotlib教程™

matplot画轮廓图_jiuweideqixu的博客-CSDN博客

Python密度和轮廓图绘制--Matplotlib详解_查数菇乐园-CSDN博客_python 轮廓图

matplotlib 合理设置colorbar和子图的对应关系_fzl的博客-CSDN博客

python matplotlib自定义colorbar颜色条-以及matplotlib中的内置色条_留下的,留不下的-CSDN博客


柱形图


图形绘制特点

柱形图从方向区分为分垂直方向和水平方向;从图形区分堆积柱形图和簇状柱形图

本篇文章主要讲述一般常用的簇状柱形图的绘制过程

通过调整边框、刻度标签、图例来美化图形

设置生成随机数据

#设置数据

r = np.random.randint(0,50,8)
x5 = np.array([1,2,3,4])
y5 = np.array([r[0],r[1],r[2],r[3]])
z5 = np.array([r[4],r[5],r[6],r[7]])
ax5_list = ['A','B','C','D']
width = 0.4

r:生成等距样本值

X5:X轴坐标

y5、z5:Y轴坐标

ax5_list:刻度标签

width:柱子宽度


柱形图的绘制语法:plt.bar或ax.bar

plt.bar(x,y,height,width,align,color,edgecolor,**kw)

#簇状柱形图

ax5.bar(x5,y5,width=width,color='r',label='bar1',alpha=0.6)
ax5.bar(x5+width,z5,width=width,color='g',label='bar2',alpha=0.6)

x,y:X轴Y轴坐标

height:柱子高度

width:柱子宽度

color:柱子颜色

edgecolor:柱子边缘颜色


设置柱子显示数值

#设置数据标签

for a,b in zip(x5,y5):
    ax5.text(a,b,b,ha='center',va='bottom',fontsize=12)
for a,b in zip(x5+width,z5):
    ax5.text(a,b,b,ha='center',va='bottom',fontsize=12)

x5+width:簇状柱形图,去掉width就变成了堆积柱形图(同X轴不同Y轴)


设置轴范围

#设置轴范围

ax5.set_ylim(0,60)
ax5.set_xlim(0,5)

设置刻度范围

#设置刻度范围

t_list = []
for t in range(1,5):
    t_list.append(t+width/2)
ax5.set_xticks(t_list)

t+width/2:把刻度值设置在两个柱子中间

ax5.set_xticks:设置X轴范围


设置刻度标签

#设置刻度标签

ax5.set_xticklabels(ax5_list,rotation=40)

rotation=40:旋转40°


设置图形标题

#设置标题

ax5.set_title('簇状柱形图(bar)')

设置图例

#设置图例

ax5.legend()

隐藏部分边框

#隐藏部分边框

ax5.spines['top'].set_color('none')
ax5.spines['right'].set_color('none')

完整代码

import matplotlib.pyplot as plt
import numpy as np

#中文设置
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用于显示中文
plt.rcParams['axes.unicode_minus'] = False  # 用于解决保存图像是负号‘-’显示为方框的问题

#设置画布
fig = plt.figure(figsize=(8,5),dpi=120)
ax5 = fig.add_subplot(111)


#柱形图
#设置数据
x5 = np.array([1,2,3,4])
r = np.random.randint(0,50,8)
y5 = np.array([r[0],r[1],r[2],r[3]])
z5 = np.array([r[4],r[5],r[6],r[7]])
ax5_list = ['A','B','C','D']
width = 0.4
#簇状柱形图
ax5.bar(x5,y5,width=width,color='r',label='bar1',alpha=0.6)
ax5.bar(x5+width,z5,width=width,color='g',label='bar2',alpha=0.6)
#设置数据标签
for a,b in zip(x5,y5):
    ax5.text(a,b,b,ha='center',va='bottom',fontsize=12)
for a,b in zip(x5+width,z5):
    ax5.text(a,b,b,ha='center',va='bottom',fontsize=12)
#设置数据标签
for a,b in zip(x5,y5):
    ax5.text(a,b,b,ha='center',va='bottom',fontsize=12)
for a,b in zip(x5,z5):
    ax5.text(a,b,b,ha='center',va='bottom',fontsize=12)
#设置轴范围
ax5.set_ylim(0,60)
ax5.set_xlim(0,5)
#设置刻度范围
t_list = []
for t in range(1,5):
    t_list.append(t+width/2)
ax5.set_xticks(t_list)
#设置刻度标签
ax5.set_xticklabels(ax5_list,rotation=40)
#设置标题
ax5.set_title('簇状柱形图(bar)')



plt.show()

参考资料:详见文末


饼图


图形绘制特点

个性化标题

自由设置突出部分饼片

圆环图也是饼图的一种,本篇主讲圆环图的绘制逻辑


饼图的绘制语法:plt.pie或ax.pie

#绘制饼图1

ax6.pie(size,explode=(0,0,0.08,0),
        autopct='%1.1f%%',
        startangle=90,
        wedgeprops={'lw':5,'width':0.3,'edgecolor':'w'})

plt.pie(x,autopct,explode,pctdistance,shadow,startangle,colors,labeldistance,radius,wedgeprops)

x:占比

autopct:格式化百分比

explode:突出显示

pctdistance:离心值

shadow:阴影

startangle:起始角度

colors:饼片颜色

labeldistance:扇形标签与圆心的距离

radius:饼图的半径大小

wedgeprops:饼图的格式


设置数据

# 设置数据

s = []
for i in range(1,5):
    s.append(random.randint(1,100))
s1 = s[0]/sum(s)
s2 = s[1]/sum(s)
s3 = s[2]/sum(s)
s4 = s[3]/sum(s)
size = [s1,s2,s3,s4]

定义标签

# 定义标签

labels = ['pieA','pieB','pieC','pieD']

设置标签

#设置标题

ax6.set_title('饼图(pie)',
              bbox=dict(boxstyle='round,pad=0.5',fc='w',ec='k',lw=1,alpha=0.5))

设置图例

# 设置图例

ax6.legend(loc=0,ncol=1,labels=labels,frameon=False)

设置等比例轴

# 设置等比例轴

ax6.axis('equal')

完整代码

import matplotlib.pyplot as plt
import numpy as np
import random

#中文设置
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用于显示中文
plt.rcParams['axes.unicode_minus'] = False  # 用于解决保存图像是负号‘-’显示为方框的问题

#设置画布
fig = plt.figure(figsize=(8,5),dpi=120)
ax6 = fig.add_subplot(111)


# 饼图
# 设置数据
s = []
for i in range(1,5):
    s.append(random.randint(1,100))
s1 = s[0]/sum(s)
s2 = s[1]/sum(s)
s3 = s[2]/sum(s)
s4 = s[3]/sum(s)
size = [s1,s2,s3,s4]
# 定义标签
labels = ['pieA','pieB','pieC','pieD']
# 设置标题
ax6.set_title('饼图(pie)',
              bbox=dict(boxstyle='round,pad=0.5',fc='w',ec='k',lw=1,alpha=0.5))
# 设置图例
ax6.legend(loc=0,ncol=1,labels=labels,frameon=False)
# 设置等比例轴
ax6.axis('equal')

plt.show()

参考资料:

[python] 基于matplotlib实现圆环图的绘制_You and Me-CSDN博客_matplotlib环形图

Matplotlib饼图注释_超级大洋葱的博客-CSDN博客


面积图

设置数据

# 设置数据

labels = ['A','B','C','D','E']
a = []
b = []
c = []
d = []
for i in a,b,c,d:
    for j in random.choices(range(1,21),k=5):
        i.append(j)
        if len(d) == 5:
            break
data = [a,b,c,d]
x = range(len(labels))
data = np.array(data)

面积图的绘制语法:plt.stackplot或ax.stackplot

plt.stackplot(x,y,baseline,sym,labels,colors)

# 绘制图形

ax7.stackplot(x,data,baseline='zero',labels=labels,alpha=0.85)

baseline:基线

sym:对称

labels:标签

colors:颜色


设置X轴范围和命名

# 设置X轴

ax7.set_xlim(0,4)
ax7.set_xticks(x)

设置图例

# 设置图例

ax7.legend()

设置标题

# 设置标题

ax7.set_title('面积图')

完整代码

import matplotlib.pyplot as plt
import numpy as np
import random

#中文设置
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用于显示中文
plt.rcParams['axes.unicode_minus'] = False  # 用于解决保存图像是负号‘-’显示为方框的问题

#设置画布
fig = plt.figure(figsize=(8,5),dpi=120)
ax7 = fig.add_subplot(111)


# 面积图
# 设置数据
labels = ['A','B','C','D','E']
a = []
b = []
c = []
d = []
for i in a,b,c,d:
    for j in random.choices(range(1,21),k=5):
        i.append(j)
        if len(d) == 5:
            break
data = [a,b,c,d]
x = range(len(labels))
data = np.array(data)
# 绘制图形
ax7.stackplot(x,data,baseline='zero',labels=labels,alpha=0.85)
# 设置X轴
ax7.set_xlim(0,4)
ax7.set_xticks(x)
# 设置图例
ax7.legend()
# 设置标题
ax7.set_title('面积图')

plt.show()

参考资料:

matplotlib之pyplot模块——堆积面积图、主题河流图(stackplot)_mighty13的专栏-CSDN博客


直方图


图形绘制特点:

三个直方图分别使用随机样本值生成(指定了范围)

降低透明度,随机重叠部分区域,突出样本值分布范围

隐藏Y轴和部分边框,美化图形


直方图的绘制语法:plt.hist或ax.hist

plt.hist(x,bins,density,alpha,histtype,color,rwidth,orientaition)

# 绘制图形

ax8.hist(np.random.normal(0,1,100),
         bins=30,
         density=True,
         alpha=0.4,
         histtype='stepfilled',
         label='$hist1$'
         )
ax8.hist(np.random.normal(-2,1,100),
         bins=30,
         density=True,
         alpha=0.4,
         histtype='stepfilled',
         label='$hist2$'
         )
ax8.hist(np.random.normal(3,1,100),
         bins=30,
         density=True,
         alpha=0.4,
         histtype='stepfilled',
         label='$hist3$'
         )

np.random.nornal():在一个样本区间范围内指定生成个数

bines:柱子数量

density:概率总和为1

alpha:透明度

histtype:直方图风格

label:直方图名称


设置刻度范围

面对过程版

#设置刻度范围

ax8.set_xticks([-4,-2,0,2,4])
ax8.set_yticks([])

面对对象版

#设置刻度范围

plt.xticks([-4,-2,0,2,4])
plt.yticks([])

ax8.set_yicks([]):隐藏Y轴刻度


设置刻度标签

#设置刻度标签

ax8_list = ['A','B','C','D','E']
ax8.set_xticklabels(ax8_list)
ax8.legend(loc=1,frameon=False)
for i in ['top','left','right']:
    ax8.spines[i].set_visible(False)

location(loc):图例位置,0代表自动取最佳的位置

frameon:是否绘制图例边框

spines[].set_visible:隐藏部分边框


设置标题

#设置标题

ax8.set_title('直方图(hist)')

完成代码

import matplotlib.pyplot as plt
import numpy as np
import random

#中文设置
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用于显示中文
plt.rcParams['axes.unicode_minus'] = False  # 用于解决保存图像是负号‘-’显示为方框的问题

#设置画布
fig = plt.figure(figsize=(8,5),dpi=120)
ax8 = fig.add_subplot(111)


# 直方图
# 绘制图形
ax8.hist(np.random.normal(0,1,100),
         bins=30,
         density=True,
         alpha=0.4,
         histtype='stepfilled',
         label='$hist1$'
         )
ax8.hist(np.random.normal(-2,1,100),
         bins=30,
         density=True,
         alpha=0.4,
         histtype='stepfilled',
         label='$hist2$'
         )
ax8.hist(np.random.normal(3,1,100),
         bins=30,
         density=True,
         alpha=0.4,
         histtype='stepfilled',
         label='$hist3$'
         )
#设置刻度范围
ax8.set_xticks([-4,-2,0,2,4])
ax8.set_yticks([])
#设置刻度标签
ax8_list = ['A','B','C','D','E']
ax8.set_xticklabels(ax8_list)
ax8.legend(loc=1,frameon=False)
for i in ['top','left','right']:
    ax8.spines[i].set_visible(False)
#设置标题
ax8.set_title('直方图(hist)')


plt.show()

雷达图


图形绘制特点:

多个雷达图堆叠在一起,以此对比不同对象的各项属性

利用不同的透明度美化图形的填充颜色和边缘颜色 

图例的边框增加阴影突出立体感


隐藏图形边框

# 隐藏边框

ax9.set_axis_off()

plt.axis('off'):隐藏所有刻度线和标签


设置数据源

# 设置随机数据源

a = []
b = []
c = []
for i in a,b,c:
    for j in random.choices(range(1,6),k=5):
        i.append(j)
        if len(c) == 5:
            break

用for循环为abc三个列表各随机生成五个数

random.choices(range(1,6),k=5):随机在[1,6)中选取一个数,共选取5次


设置极轴刻度标签

# 极轴刻度

labels = ['var1','var2','var3','var4','var5']

轴径

# 轴径

N = len(a)

设置雷达图的角度值

# 设置雷达图的角度值

angles = np.linspace(0,2*np.pi,N,endpoint=False)

np.linspace(0,2*np.pi,N):在(0,2π)范围内随机生成N个数(浮点数)

endpoint:是否等距


闭环

# 封闭雷达图

a = np.concatenate((a,[a[0]]))
b = np.concatenate((b,[b[0]]))
c = np.concatenate((c,[c[0]]))
angles = np.concatenate((angles,[angles[0]]))
labels = np.concatenate((labels,[labels[0]]))  

将abc三个对象的数据闭环

将雷达图和刻度标签形成闭环


坐标转换格式

# 设置为极坐标格式

ax9 = fig.add_subplot(111,polar=True)

不转换格式,雷达图将以默认坐标格式显示


绘制abc三个对象的线条

# 绘制折线图

ax9.plot(angles,a,lw=1,linestyle='solid',label='A')
ax9.plot(angles,b,lw=1,linestyle='solid',label='B')
ax9.plot(angles,c,lw=1,linestyle='solid',label='C')

lw:线宽

linestyle:线条风格

label:线条名称


填充abc三个对象的颜色

# 填充颜色

ax9.fill(angles,a,color='b',alpha=0.1)
ax9.fill(angles,b,color='r',alpha=0.1)
ax9.fill(angles,c,color='g',alpha=0.1)

添加极轴标签

# 添加极轴标签

ax9.set_thetagrids(angles*180/np.pi,labels)

设置极轴范围

# 设置极轴范围

ax9.set_ylim(0,5)

设置极轴开始点

# 设置极轴开始点

ax9.set_theta_zero_location('N')

设置极轴方向

# 设置极轴方向

ax9.set_theta_direction(-1)     #顺时针:1   逆时针:-1

设置网格线

# 设置网格线

ax9.grid(True)

设置图例

# 设置图例

ax9.legend(loc='upper center', bbox_to_anchor=(0.5, -0.05),  shadow=True, ncol=3)

loc:图例位置

bbox_to_anchor:边框设置

shadow:阴影

ncol:图例列数


设置标题

# 设置标题

ax9.set_title('雷达图')

完整代码

import matplotlib.pyplot as plt
import numpy as np
import random

# 中文设置
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用于显示中文
plt.rcParams['axes.unicode_minus'] = False  # 用于解决保存图像是负号‘-’显示为方框的问题

# 设置画布
fig = plt.figure(figsize=(8,5),dpi=120)
ax9 = fig.add_subplot(111)


# 雷达图
# 隐藏边框
ax9.set_axis_off()
# 设置随机数据源
a = []
b = []
c = []
for i in a,b,c:
    for j in random.choices(range(1,6),k=5):
        i.append(j)
        if len(c) == 5:
            break
# 极轴刻度标签
labels = ['var1','var2','var3','var4','var5']
# labels.append(labels[0])                    #要么这里闭合,要么下面闭合
# 轴径
N = len(a)
# 设置雷达图的角度值
angles = np.linspace(0,2*np.pi,N,endpoint=False)
# 封闭雷达图
a = np.concatenate((a,[a[0]]))
b = np.concatenate((b,[b[0]]))
c = np.concatenate((c,[c[0]]))
angles = np.concatenate((angles,[angles[0]]))
labels = np.concatenate((labels,[labels[0]]))           #要么这里闭合,要么上面闭合
# 设置为极坐标格式
ax9 = fig.add_subplot(111,polar=True)
# 绘制折线图
ax9.plot(angles,a,lw=1,linestyle='solid',label='A')
ax9.plot(angles,b,lw=1,linestyle='solid',label='B')
ax9.plot(angles,c,lw=1,linestyle='solid',label='C')
# 填充颜色
ax9.fill(angles,a,color='b',alpha=0.1)
ax9.fill(angles,b,color='r',alpha=0.1)
ax9.fill(angles,c,color='g',alpha=0.1)
# 添加极轴标签
ax9.set_thetagrids(angles*180/np.pi,labels)
# 设置极轴范围
ax9.set_ylim(0,5)
# 设置极轴开始点
ax9.set_theta_zero_location('N')
# 设置极轴方向
ax9.set_theta_direction(-1)     #顺时针:1   逆时针:-1
# 设置网格线
ax9.grid(True)
# 设置图例
ax9.legend(loc='upper center', bbox_to_anchor=(0.5, -0.05),  shadow=True, ncol=3)
# 设置标题
ax9.set_title('雷达图')


plt.show()

参考资料:详见文末


热力图


设置数据源

# 设置数据源

x10 = np.random.rand(4,4)

绘制图形

# 绘制图形

colorbar_10 = ax10.imshow(x10, cmap=plt.cm.hot, vmin=0, vmax=1)
fig.colorbar(colorbar_10,ax=ax10,extend='both')

imshow:显示图像

cmap:色彩

vmin、vmax:颜色最值范围

extend:色彩颜色

ax:图像位置


设置标题

# 设置标题

ax10.set_title('热力图')

完整代码

import matplotlib.pyplot as plt
import numpy as np
import random

# 中文设置
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用于显示中文
plt.rcParams['axes.unicode_minus'] = False  # 用于解决保存图像是负号‘-’显示为方框的问题

# 设置画布
fig = plt.figure(figsize=(8,5),dpi=120)
ax10 = fig.add_subplot(111)


# 热力图
# 设置数据源
x10 = np.random.rand(4,4)
# 绘制图形
colorbar_10 = ax10.imshow(x10,cmap=plt.cm.hot,vmin=0,vmax=1)
fig.colorbar(colorbar_10,ax=ax10,extend='both')
# 设置标题
ax10.set_title('热力图')

plt.tight_layout()
plt.show()

参考资料:

一、python可视化——热力图_Nicole的博客-CSDN博客_python 热力图


词云图


图像绘制特点:

大部分教程都是使用导入本地文件的方法来运行,这可能不太适合刚接触的同学,所以我直接设置词组来展示词云图的效果


设置词组

# 设置词组(歌曲:我怀念的)

text = '我怀念的是无言感动,我怀念的是绝对炽热,我怀念的是你很激动求我原谅抱得我都痛'

分词

# 使用全模式分词

tp = jieba.cut(text,cut_all=True)

记得导入jieba库

import jieba                    # 安装库:pip install jieba

如果你的文本有很多空格或者标点符号,则需要先做数据清洗,具体例子参考百度


合并词组

# 合并词组

tp = ','.join(tp)

分词后,需要用一个符号来重新合并文本,否则会报错显示只有一个词组

jion():python内置合并函数


生成词云

# 生成云词

wc = WordCloud(font_path=r'.simhei.ttf',background_color='white').generate(tp)

font_path:字体位置(请翻到最上面重新看字体部分)

background_color:背景颜色

注意语法的大小写

记得导入相关库

from wordcloud import WordCloud

这个库的安装比较容易失败,建议百度查询安装方式


隐藏边框和刻度

# 隐藏所有边框和刻度

ax11.axis('off')

显示图像

# 显示图像

ax11.imshow(wc)

设置标题

# 设置标题

ax11.set_title('词云图')

完整代码

import matplotlib.pyplot as plt
import numpy as np
import random
import logging
import jieba
from wordcloud import WordCloud

# 中文设置
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用于显示中文
plt.rcParams['axes.unicode_minus'] = False  # 用于解决保存图像是负号‘-’显示为方框的问题

# 设置画布
fig = plt.figure(figsize=(8,5),dpi=120)
ax11 = fig.add_subplot(111)


# 词云图
jieba.setLogLevel(logging.INFO)
# 设置词组(歌曲:我怀念的)
text = '我怀念的是无言感动,我怀念的是绝对炽热,我怀念的是你很激动求我原谅抱得我都痛'
# 使用全模式分词
tp = jieba.cut(text,cut_all=True)
# 合并词组
tp = ','.join(tp)
# 生成云词
wc = WordCloud(font_path=r'.simhei.ttf',background_color='white').generate(tp)
# 隐藏所有边框和刻度
ax11.axis('off')
# 显示图像
ax11.imshow(wc)
# 设置标题
ax11.set_title('词云图')

plt.tight_layout()
plt.show()

参考资料:

python :jieba库的使用大全_总裁余(余登武)博客-CSDN博客_pythonjieba库的使用

【学习笔记】wordCloud的基本使用_寸先生的AI道路-CSDN博客

详细介绍使用wordCloud设计词云_修炼之路-CSDN博客

怎么用Python画出好看的词云图?_数据森麟-CSDN博客


箱型图


 图像绘制特点

利用三个不同的样式作为设置对比,可以自由设置箱型图的宽度、误差线、颜色、中位线等等


设置数据

# 设置数据

data =[np.random.normal(0,i,100) for i in range(1,4)]

随机生成三个样本

np.random.normal():随机生成正态分布


绘制图形

# 绘制图形

boxs = ax12.boxplot(data,patch_artist=True,
                vert=True,widths=[0.2,0.4,0.3])

箱型图的绘制语法:plt.boxplot或ax.boxplot

plt.boxplot(data,patch_artist,vert,widths,sym)

data:数据

pathc_artist:填充箱体颜色

vert:箱体显示方向;True垂直摆放,False水平摆放

widths:箱体宽度

sym:指定异常点的形状


设置颜色

# 设置颜色

colors = ['pink', 'lightblue', 'lightgreen']
for patch,color in zip(boxs['boxes'],colors):
    patch.set_facecolor(color)

zip:python内置函数

boxs['boxes']:箱体在箱型图中国的位置


设置刻度值

# 设置刻度值

ax12.set_yticks([-6,-3,0,3,6])

设置标题

# 设置标题

ax12.set_title('箱型图')

完整代码

import matplotlib.pyplot as plt
import numpy as np
import random


# 中文设置
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用于显示中文
plt.rcParams['axes.unicode_minus'] = False  # 用于解决保存图像是负号‘-’显示为方框的问题

# 设置画布
fig = plt.figure(figsize=(8,5),dpi=120)
ax12 = fig.add_subplot(111)


# 箱型图
# 设置数据
data =[np.random.normal(0,i,100) for i in range(1,4)]
# 绘制图形
boxs = ax12.boxplot(data,patch_artist=True,
                vert=True,widths=[0.2,0.4,0.3])
# 设置颜色
colors = ['pink', 'lightblue', 'lightgreen']
for patch,color in zip(boxs['boxes'],colors):
    patch.set_facecolor(color)
# 设置刻度值
ax12.set_yticks([-6,-3,0,3,6])
# 设置标题
ax12.set_title('箱型图')

plt.tight_layout()
plt.show()

参考资料:

Matplotlib - 箱线图、箱型图 boxplot () 所有用法详解_Not Found黄小包-CSDN博客_matplotlib箱线图

matplotlib可视化箱线图 - 知乎


图形设置常用参数

以下主要记录图形参数的一些常用设置


注释
plt.annotate(t,xy,xytext,arrowprops,color,weight,bbox)
t注释内容
xytext注释位置
xy注释的坐标点
color注释颜色
weight字体线性
bbox注释框
arrowprops绘制箭头
arrowprops子参数
headwidth箭头大小
width箭头线大小
facecolor箭头颜色
edgecolor箭头边框颜色
shrink箭头线收缩长度

文本
plt.text(x,y,family,fontsize,style,color)
x,y注释内容位置
family字体
fontsize字体大小
style字体风格
color字体颜色

参考资料:

Python绘图总结(Matplotlib篇)之字体、文本及注释_wuzlun的专栏-CSDN博客_matplotlib 字体

Matplotlib注释箭头样式_超级大洋葱的博客-CSDN博客

matplotlib命令与格式:标题(title),标注(annotate),文字说明(text)_开码河粉-CSDN博客_plt设置title


图像
plt.imshow(x,cmap,extent,origin,alpha,interpolation,aspect)
x
cmap图像色彩
extent坐标轴范围
origin图像原点位置
alpha透明度
interpolation显示方式
aspect控制轴的纵横比

参考资料:

Matplotlib imshow()函数_叫我SKY的博客-CSDN博客

matplotlib基础绘图命令之imshow_庐州月光的博客-CSDN博客


颜色条
plt.colorbar(ax,norm,cmap,orientation,extend)
ax颜色条的位置
norm颜色条的大小值
cmap色彩
orientationorientation
extendextend

参考资料:

python matplotlib自定义colorbar颜色条-以及matplotlib中的内置色条_留下的,留不下的-CSDN博客


图形窗口管理
图形窗口常用语法
plt.axes([左边,底部,宽度,高度])设置子图表大小
plt.subplot创建单个子图表
plt.subplots快速创建多个子图表
plt.GridSpec自定义排列
subplots_adjust自定义设置图像间距
plt.tight_layout自动调整图像间距
plt.subplots常用参数
nrows行数
ncols列数
num画布名称
facecolor画布背景颜色
edgecolor画布边框颜色
frameon是否绘制画布图框
figsize图像大小
sharex相同X轴刻度
sharey相同Y轴刻度
subplots_adjust
left左边
bottom底部
right右边
top顶部
wspace左右宽度
hspace上下宽度

参考资料:

plt绘图与Axes绘图_风浅安然的博客-CSDN博客


标题 
plt.title常用参数
fontsize字体大小
fontweight字体粗细
fontstyle字体类型
location字体位置
rotation字体旋转
alpha透明度
backgroundcolor标题背景
color标题颜色
bbox标题外框

fontsize子参数
xx-small最小
x-small较小
small
medium中等
large
x-large较大
xx-large最大
fontweight子参数
light细的
normal正常
medium中等
semibold较粗
fontstyle子参数
normal正常
italic斜体
oblique倾斜
location子参数
verticalalignment水平对齐;center、top、bottom、baselin
horizontalalignment垂直对齐;left、right、center
bbox标题外框子参数
boxstyle方框外形
facecolor背景颜色
edgecolor边框线条颜色
edgewidth边框线条大小

参考资料:

matplotlib命令与格式:标题(title),标注(annotate),文字说明(text)_开码河粉-CSDN博客_plt设置title


坐标轴
坐标轴常用参数
plt.xlim;ax.set_xlimX轴坐标
plt.ylim;ax.set_ylimY轴坐标
plt.axis坐标轴特殊设置
plt.xlabelX轴名称
plt.ylabelY轴名称
twinx双坐标轴

plt.axis子参数
plt.axis("tight")自动设置X、Y轴最值
plt.axis("equal")自动设置X、Y轴相同范围
plt.axis("off")隐藏所有刻度线和标签

刻度
刻度值
plt.xticks;ax.set_xticksX轴刻度值
plt.yticks;ax.set_yticksY轴刻度值
plt.xticks([]);ax.set_xticks([])隐藏X轴刻度值和标签
plt.yticks([]);ax.set_yticks([])隐藏Y轴刻度值和标签
plt.tick_params(bottom=False,top=False,left=False,right=False)隐藏刻度值
r'frac{分子}{分母}'显示分数的方法
刻度标签
xticklabelsX轴刻度标签
yticklabelsY轴刻度标签

参考资料:

matplotlib隐藏刻度线、标签和边线_韭浪的博客-CSDN博客_matplotlib 隐藏刻度

matplotlib绘图(二)坐标轴刻度、标签、位置设置_小院桃李的博客-CSDN博客_matplotlib画图坐标轴标签


边框
ax.spines常用设置
ax.spines[''].set_color('none')隐藏部分边线
ax.spines[].visible隐藏部分边线
for i in ['top', 'right', 'bottom', 'left']:
    ax.spines[i].set_visible(False)
隐藏全部边线
ax.xaxis.set_ticks_position('')调整X轴位置
ax.yaxis.set_ticks_position('')调整Y轴位置
边线位置
top顶部
bottom底部
left左边
right右边

参考资料:

matplotlib 的 spines模块详解_Python草堂的博客-CSDN博客_spines


网格
plt.grid常用参数
alpha透明度
color颜色
linewidth网格线宽度
linestyle网格线分割
which线条层次;major、minor、both三个参数可选
axis网格轴;x、y、both三个参数可选

图例
plt.legend常用参数
location(loc)图例位置
angle阴影的角度
density阴影线的密度
byt图例边框;o(显示)n(不显示)
frameon图例边框;True、False
bg

图例背景色

cex字符大小
ncol图例列数
图例框常用设置
boxlty图例框的类型
boxlwd图例框线条粗细
图例标题常用设置
title图例标题

title.col

图例标题颜色
title.adj图例标题位置

图例中的文本可设置字体大小、文本字体、文本颜色、文本宽度,和标题、注释一样

参考资料:

python - matplotlib.legend()函数用法解析_鸡啄米的时光机的博客-CSDN博客


线条
线条常用设置参数
linestyle线条风格
marker线条标记
linewidth(lw)线条粗细
linestyle常用参数
-实线
--虚线
-.长短点虚线
点线

参考资料:

python+matplotlib绘图线条类型和颜色选择_syyyy712的博客-CSDN博客_matplotlib 颜色


填充
fill设置
fill填充区域
fill_beween填充交叉区域

fill属性用得少,各位可以看下参考资料,讲的也比较详细(主要是懒!!!)

参考资料:

Matplotlib中的fill_between总结_kabuto_hui的博客-CSDN博客

Matplotlib:fill, fill_between ,fill_betweenx填充图形指定区域_错位的梦寐的博客-CSDN博客_matplotlib区域填充


matplotlib笔记脑图


注意事项:
  1. 部分参数可以使用简写
  2. 气泡图本质上也是散点图的一种
  3. 误差图的原理是在图形上增加误差线而已,本质上柱状图、直方图、箱型图等等也是可以通过增加误差线参数来实现添加误差线
  4. 环形图的原理就是在饼图中间再画一个背景色的饼图来隐藏中间
  5. 用折线图+填充(fill)也可以实现面积图的效果
  6. 柱形图和直方图的区别就在于看的是数据的具体数值还是分布趋势
  7. 雷达图本质上是把坐标换成极坐标的折线图+填充

matplotlib全图参考资料:

(认真看完,再针对不懂的点单独查询,多加练习也就学会这玩意了)

推荐收藏 | 最强(全) Matplotlib 可视化实操指南

Python--Matplotlib(基本用法)_苦作舟的人呐-CSDN博客_matplotlib

用Python画如此漂亮的专业插图 ?简直So easy!

这16个Matplotlib 绘图实用小技巧值得你收藏~~

这40个Python可视化图表案例,强烈建议收藏!

Matplotlib全面语法教程 & 更好的理解Matplotlib用法 - 知乎

[Python从零到壹] 十七.可视化分析之Matplotlib、Pandas、Echarts入门万字详解_杨秀璋的专栏-CSDN博客_python聚类分析


尾语

写这篇文章的主要目的是为了记录自己所学的知识,同时,也为了给刚接触matplotlib的朋友一点参考价值。

文中有很多参考资料,都是很多大佬们写的一些资料,讲的也比较详细

最后感谢各位的观看,觉得可以的话可以点赞收藏喔


示例图代码

已上传文件,仅意义上的收费,实际相关绘制思路已在文中体现

代码链接:https://download.csdn.net/download/weixin_46159679/35656879

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/357240.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号