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

前言

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

示例图

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

模块库

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

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:\Windows\Fonts(如果不一样,可自行百度查找)

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:\windows\fonts\simsun.ttc", size=20)

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

plt.xticklabel...

plt.yticklabel...    等等

方式三:

执行这串代码然后将simhei.ttf 字体文件放到这里面:\matplotlib \mpl-data\fonts\ttf

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

然后退回到这个地方\matplotlib \mpl-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 显示中文

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

折线图

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

图形绘制特点

该图以绘制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{3\pi}{2}$', r'$2\pi$']
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{3\pi}{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{3\pi}{2}$', r'$2\pi$']
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{3\pi}{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()

参考资料:详见文末

散点图

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

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

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

图形绘制特点

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

图二使用不同的标记(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()

参考资料:详见文末

误差图

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

图形绘制特点

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

误差图的绘制语法: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()

参考资料,详见文末

轮廓图

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

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

设置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博客

柱形图

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

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

图形绘制特点

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

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

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

设置生成随机数据

#设置数据

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()

参考资料:详见文末

饼图

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

图形绘制特点

个性化标题

自由设置突出部分饼片

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

饼图的绘制语法: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博客

面积图

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

设置数据

设置数据

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博客

直方图

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

图形绘制特点:

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

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

隐藏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()

雷达图

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

图形绘制特点:

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

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

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

隐藏图形边框

隐藏边框

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()

参考资料:详见文末

热力图

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

设置数据源

设置数据源

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 热力图

词云图

【matplotlib】浅谈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博客

箱型图

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

图像绘制特点

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

设置数据

设置数据

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) xcmap图像色彩extent坐标轴范围origin图像原点位置alpha透明度interpolation显示方式aspect控制轴的纵横比

参考资料:

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

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

颜色条

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

参考资料:

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、baselinhorizontalalignment垂直对齐;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 隐藏刻度

边框

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、Falsebg

图例背景色

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笔记脑图

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

注意事项:

  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的朋友一点参考价值。

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

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

示例图代码

详见网址:matplotlib二维练习图纸代码.py-Python文档类资源-CSDN下载

Original: https://blog.csdn.net/weixin_46159679/article/details/120916533
Author: inganxu
Title: 【matplotlib】浅谈python图形可视化练习经验分享

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/766627/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球