目录
一、matplotlib.pyplot.violinplot()语法
二、绘制小提琴图
①绘制简单小提琴图
②各个参数绘制小提琴图
(1)vert参数(bool值,设置小提琴图是水平还是垂直,默认值True垂直)
(2) positions参数(指定小提琴图位置)
(3) widths参数(指定小提琴图的宽度,默认值0.5)
(4)showmeans参数(bool值,是否显示算术平方根,默认值False不显示)
(5)showextrema参数(bool值,是否显示极值,默认值True显示)
(6)showmedians参数(bool值,是否显示中位数,默认值False不显示)
(7)quantiles参数(指定分位数的位置,取值范围在[0,1]之间)
(8)points参数(int值,定义计算核密度估计的点的数量,默认值100 )
violinplot(dataset, positions=None, vert=True, widths=0.5,
showmeans=False, showextrema=True, showmedians=False, quantiles=None,
points=100, bw_method=None, *, data=None)
plt.violinplot(
dataset, # 数据
positions, # 指定小提琴图位置
vert=True or False, # 设置小提琴图方向 True是水平 False是垂直
widths, # 箱体的宽度,默认值0.5
showmeans=True or False, # 是否显示算术平方根,默认值False不显示
showextrema=True or False, # 是否显示极值,默认值True显示
showmedians=True or False, # 是否显示中位数,默认值False不显示
quantiles, # 指定分位数的位置,元素要求求值范围为[0,1]
points=int, # 定义计算核密度估计的点的数量,默认值100
bw_method, # 用于估算带宽的方法,默认值scott 可选参数silverman
)
import matplotlib.pyplot as plt
import numpy as np
plt.violinplot(dataset=np.random.normal(size=1000))
plt.show()
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif']=['FangSong'] # 设置正常显示中文字体 并设置中文字体为仿宋
plt.rcParams['axes.unicode_minus']=False # 正常显示负号
plt.subplot(121)
plt.violinplot(dataset=np.random.normal(size=1000),vert=False)
plt.title('水平',size=20)
plt.subplot(122)
plt.violinplot(dataset=np.random.normal(size=1000),vert=True)
plt.title('垂直',size=20)
plt.show()
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif']=['FangSong'] # 设置正常显示中文字体 并设置中文字体为仿宋
plt.rcParams['axes.unicode_minus']=False # 正常显示负号
plt.subplot(121)
plt.violinplot(dataset=np.random.normal(size=1000),positions=[2])
plt.title('指定位置',size=20)
plt.subplot(122)
plt.violinplot(dataset=np.random.normal(size=1000))
plt.title('不指定位置',size=20)
plt.show()
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif']=['FangSong'] # 设置正常显示中文字体 并设置中文字体为仿宋
plt.rcParams['axes.unicode_minus']=False # 正常显示负号
plt.subplot(121)
plt.violinplot(dataset=np.random.normal(size=1000),widths=0.3)
plt.title('指定宽度',size=20)
plt.subplot(122)
plt.violinplot(dataset=np.random.normal(size=1000))
plt.title('不指定宽度',size=20)
plt.show()
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif']=['FangSong'] # 设置正常显示中文字体 并设置中文字体为仿宋
plt.rcParams['axes.unicode_minus']=False # 正常显示负号
plt.subplot(121)
plt.violinplot(dataset=np.random.normal(size=1000),showmeans=True)
plt.title('显示算术平方根',size=20)
plt.subplot(122)
plt.violinplot(dataset=np.random.normal(size=1000))
plt.title('不显示算术平方根',size=20)
plt.show()
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif']=['FangSong'] # 设置正常显示中文字体 并设置中文字体为仿宋
plt.rcParams['axes.unicode_minus']=False # 正常显示负号
plt.subplot(121)
plt.violinplot(dataset=np.random.normal(size=1000),showextrema=False)
plt.title('不显示极值',size=20)
plt.subplot(122)
plt.violinplot(dataset=np.random.normal(size=1000))
plt.title('显示极值',size=20)
plt.show()
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif']=['FangSong'] # 设置正常显示中文字体 并设置中文字体为仿宋
plt.rcParams['axes.unicode_minus']=False # 正常显示负号
plt.subplot(121)
plt.violinplot(dataset=np.random.normal(size=1000),showmedians=True)
plt.title('显示中位数',size=20)
plt.subplot(122)
plt.violinplot(dataset=np.random.normal(size=1000))
plt.title('不显示中位数',size=20)
plt.show()
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif']=['FangSong'] # 设置正常显示中文字体 并设置中文字体为仿宋
plt.rcParams['axes.unicode_minus']=False # 正常显示负号
plt.subplot(121)
plt.violinplot(dataset=np.random.normal(size=1000),quantiles=[0.2,0.4,0.6,0.8])
plt.title('指定分位数位置',size=20)
plt.subplot(122)
plt.violinplot(dataset=np.random.normal(size=1000))
plt.title('不指定分位数位置',size=20)
plt.show()
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif']=['FangSong'] # 设置正常显示中文字体 并设置中文字体为仿宋
plt.rcParams['axes.unicode_minus']=False # 正常显示负号
plt.subplot(121)
plt.violinplot(dataset=np.random.normal(size=1000),points=5)
plt.title('设置核密度估计点数',size=20)
plt.subplot(122)
plt.violinplot(dataset=np.random.normal(size=1000))
plt.title('不设置核密度估计点数',size=20)
plt.show()