我是靠谱客的博主 合适小蝴蝶,最近开发中收集的这篇文章主要介绍画图工具:Matplotlib(2),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一,基本图标的绘制


图标类型:线形图,柱状图,密度图,以横坐标两个维度为主

同时可以延伸出多种其他图标样式

plt.plot(kind='line', ax=None, figsize=None, use_index=True, title=None, grid=None, legend=False, 
style=None, logx=False, logy=False, loglog=False, xticks=None, yticks=None, xlim=None, ylim=None, 
rot=None, fontsize=None, colormap=None, table=False, yerr=None, xerr=None, label=None, secondary_y=False, **kwds)

1.1,Series直接生成图标

# Series 直接生成图标

ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000))
ts = ts.cumsum()
ts.plot(
    kind='line',
    label='haha',
    style='--g',
    color='r',
    alpha=0.4,
    use_index=True,
    rot=45,
    grid = True,
    ylim=[-50, 50],
    yticks=list(range(-50, 50, 10)),
    figsize=(8, 4),
    title='test',
    legend=True
)
plt.grid(True, linestyle='--', color='#eeeeee', linewidth='0.5', axis='x')
# Series.plot():Series的index为横坐标,values为纵坐标
# kind  -->  line, bar, barth...(折线图, 柱状图, 柱状图-横)
# label  -->  图例标签,DataFrame格式以columns为label
# style  -->  符合样式,包含线样式,点样式,线颜色
# color  -->  颜色,有color的指定的时候,以color颜色为准
# alpha  -->  透明度,0~1
# use_index  -->  将索引引用为x轴刻度标签,默认为True
# rot  -->  旋转标签刻度,0~360度
# grid  -->  True为显示网格,一般都用plt.grid(True, linestyle = "--",color = "gray", linewidth = 												"0.5",axis = 'x') 
# xlim, ylim  -->  t,y轴界限
# xticks, yticks  -->  x, y轴刻度值
# figsize  -->  图像大小
# title  -->  图标名称
# legend  -->  是否显示图例,一般直接用plt.legend(loc='lower center') 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nL5bJRKC-1592114647265)(assets/.png)]

1.2,DataFrame直接生成图标

# DataFrame 直接生成图标

df = pd.DataFrame(np.random.randn(1000, 4), ts.index, columns=list('ABCD'))
df = df.cumsum()
df.plot(
    kind='line',
    style='--g',
    use_index=True,
    rot=45,
    grid=True,
    figsize=(8, 4),
    title='text',
    legend=True,
    subplots=False,
    colormap='Greens'
)
# subplots  -->  是否将各个列绘制成不同的图标,默认False
# 也可以  -->  plt.plot(df)来画图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3S9KU56n-1592114647271)(assets/28.png)]

二,柱状图,堆叠图


plt.plot(kind='bar/barh') , plt.bar()	# 两种画法

2.1,柱状图与堆叠图

fig, axes = plt.subplots(4, 1, figsize=(10, 10))
s = pd.Series(np.random.randint(0, 10, 16), index=list('abcdefghijklmnop'))
df = pd.DataFrame(np.random.rand(10, 3), columns=list('abc'))

s.plot(kind='bar', color='r', grid=True, alpha=0.5, ax=axes[0], rot=45)
# Series柱状图方:Series.plot(kind='bar'/'barh')有h代表x,y轴反转

df.plot(kind='bar', ax=axes[1], grid=True)
# DataFrame柱状图:DataFrame.plot(kind='bar'/'barh'')

df.plot(kind='bar', ax=axes[2], grid=True, colormap='Reds_r', stacked=True)
# DataFrame柱状堆叠图:通过stacked把数据堆叠在一起

df.plot.barh(ax=axes[3], grid=True, stacked=True, colormap='YlOrRd_r')
# 新版本写法,barh使x,y轴反转,stacked堆叠数据

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zhmpFetr-1592114647274)(assets/29.png)]

2.2,柱状图补充

plt.figure(figsize=(10, 6))
x = np.arange(10)
y1 = np.random.rand(10)
y2 = -np.random.rand(10)

plt.bar(x, y1, width=1, facecolor='yellowgreen', edgecolor='white', yerr =y1*0.1)
plt.bar(x, y2, width=1, facecolor='lightskyblue', edgecolor='white', yerr=y2*0.1)
# x, y参数,x,y值
# width:宽度比例
# facecolor:柱子的颜色, edgecolor外边框的颜色
# yerr:基准线,后面的的值代表基准线长度

for i, j in zip(x, y1):
    plt.text(i-0.3, j+0.1, "{:.2f}".format(j), color='red', alpha=0.5)
for i, j in zip(x, y2):
    plt.text(i-0.3, j-0.15, "{:.2f}".format(j), color='red', alpha=0.5)
# 用遍历的方法添加text,简直6到不行
# zip的方法吧两个等长的容器里面的值一一匹配,返回一个嵌套元组

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JtMmWqFj-1592114647277)(assets/30.png)]

2.3,外嵌图标

# 外嵌图表plt.table()
# table(cellText=None, cellColours=None,cellLoc='right', colWidths=None,rowLabels=None, rowColours=None, rowLoc='left',
# colLabels=None, colColours=None, colLoc='center',loc='bottom', bbox=None)
data = [[ 66386, 174296,  75131, 577908,  32015],
        [ 58230, 381139,  78045,  99308, 160454],
        [ 89135,  80552, 152558, 497981, 603535],
        [ 78415,  81858, 150656, 193263,  69638],
        [139361, 331509, 343164, 781380,  52269]]
columns = ('Freeze', 'Wind', 'Flood', 'Quake', 'Hail')
index = ['{} year'.format(x) for x in [5, 10, 20, 50, 100]]
df = pd.DataFrame(data, index=index, columns=columns)

fig = df.plot(kind='bar', stacked=True, colormap='Blues_r', figsize=(10, 6))
# 创建叠堆图

fig.table(cellText = data,
          cellLoc='left',
          cellColours = None,
          rowLabels = index,
          rowColours = plt.cm.BuPu(np.linspace(0, 0.5,5))[::-1],  # BuPu可替换成其他colormap
          colLabels = columns,
          colColours = plt.cm.Reds(np.linspace(0, 0.5,5))[::-1], 
          rowLoc='left',
          loc='bottom')
# cellText:表格文本
# cellLoc:cell内文本对齐方式
# rowLabels:相当于index
# colLabels:想当于columns
# rowLoc:index对齐位置
# loc:这table的方位

fig.set_xticklabels([])
# 不显示x轴的刻度标签

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nmjKRwYY-1592114647279)(assets/31.png)]

三,面积图、填图、饼图


3.1,面积图

fig, axes = plt.subplots(2, 1, figsize=(8, 6))
df1 = pd.DataFrame(np.random.rand(10, 4), columns=list('abcd'))
df2 = pd.DataFrame(np.random.randn(10, 4), columns=list('abcd'))
df1.plot(kind='area', colormap='Greens_r',ax=axes[0], alpha=0.8)
df2.plot(kind='area', colormap='copper', ax=axes[1], alpha=0.8, stacked=False)
# df1.plot.area(colormap='Greens_r',ax=axes[0], alpha=0.8)
# 使用Series.plot.area()和DataFrame.plot.area()创建面积图
# 为了产生堆叠面积图,每列必须是正值或者负值,否则报错(就必须取消堆叠堆叠,或者使用填图)
# 当数据有NaN的时候,会自动填充成0,所以数据需要清洗掉缺失值

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-epUUi42F-1592114647282)(assets/32.png)]

3.2,填图

fig,axes = plt.subplots(3,1,figsize = (8,6))
x = np.linspace(0, 1, 500)
y1 = np.sin(4*np.pi*x) * np.exp(-5*x)
y2 = -y1

axes[0].fill(x, y1, 'r', label='y1')
axes[0].fill(x, y2, 'b', label='y1')
# 对函数和坐标轴之间的区域进行填充,使用fill函数(不需要正负值)
# 也可以写成:plt.fill(x, y, ....)

x = np.linspace(0, 5 * np.pi, 1000) 
y1 = np.sin(x)  
y2 = np.sin(2 * x) 
y3 = 0.50.5作为基准线填充
axes[1].fill_between(x, y1, y2, color='b', label='area')
axes[2].fill_between(x, y1, y3, color='b', label='area')
# 填充两个函数之间的区域,使用fill_between函数

for i in range(2):
    axes[i].legend()
#     axes[i].grid()
# 使用for循环给子图添加图例,网格

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4MOjvHUA-1592114647285)(assets/33.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RTsX2LSY-1592114647287)(assets/35.png)]

3.3,饼图

'''参数
	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, hold=None, data=None)
'''
s = pd.Series(3*np.random.rand(4), index=list('abcd'), name='Series')
plt.axis('equal')
s.plot(kind='pie', 
       explode=[0.1, 0.1, 0.1, 0.1],
       labels=s.index,
       colors=['r', 'y', 'b', 'g'],
       autopct='%.2f%%',
       pctdistance=0.5, 
       labeldistance=1.1, 
       shadow=True, 
       startangle=90, 
       radius=1.5, 
       frame=False, counterclock=True)
print(s)
# plt.pie()
# kind:图表类型,也可以写成plt.pir(s)
# explode:每个饼对于中心点的偏移度
# labels:每个饼的外标签
# autopct:每个饼的数据标签显示方式
# pctdistance:每个饼的数据标签与中心点的距离比例
# labeldistance:每个饼外标签的直径,默认1.1
# shadow:阴影
# startangle:第一个饼的开始角度
# radius:半径
# frame:图框
# counterclock:True为逆时针,False为顺时针

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nPpcoBDO-1592114647290)(assets/34.png)]

四,直方图


4.1,直方图+密度图

'''
plt.hist(x, bins=10, range=None, normed=False, weights=None, cumulative=False, bottom=None, 
histtype='bar', align='mid', orientation='vertical',rwidth=None, log=False, color=None, label=None, 
stacked=False, hold=None, data=None, **kwargs)
'''
s = pd.Series(np.random.randn(1000))
s.plot(kind='hist', 
       bins=20, 
       histtype='bar', 
       align='mid', 
       orientation='vertical',
       alpha=0.5,
       density=True
       )
# bin:柱子的数量
# histtype:风格(bar,barstacked, step, stepfilled)
# orientation:水平还是垂直(horizontal,vertical)
# align:对齐方式(‘left’,‘mid’,‘right’)对齐方式
# density:允许使用密度图,配合下面的密度图使用
s.plot(kind='kde', style='k--')

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5SlYIoWB-1592114647292)(assets/36.png)]

4.2,堆叠直方图

df = pd.DataFrame({'a': np.random.randn(1000) + 1, 'b': np.random.randn(1000),
                    'c': np.random.randn(1000) - 1, 'd': np.random.randn(1000)-2},
                   columns=['a', 'b', 'c','d'])
df.plot.hist(stacked=True,
             bins=20,
             colormap='Greens_r',
             alpha=0.5,
             grid=True)
# 也可以使用plt.grid(linestyle='--')设置网格
# 使用DataFrame.plot.hist()和Series.plot.hist()方法绘制
# stacked:是否堆叠

df.hist(bins=50)
# 生成多个直方图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HfZvH0JM-1592114647296)(assets/37.png)]

五,散点图,矩阵散点图


5.1,散点图

'''
plt.scatter(x, y, s=20, c=None, marker='o', cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=None, edgecolors=None, hold=None, data=None, **kwargs)
'''
plt.figure(figsize=(8, 6))
x = np.random.randn(1000)
y = np.random.randn(1000)
plt.scatter(x, y, 
            marker='.', 
            s= np.random.randn(1000)*100,
            c = x,    # 根据x轴颜色渐变
            cmap='gist_heat',
            alpha=0.8,
           )
plt.grid(linestyle='--')
# marker:散点的形状,marker='x'是叉,marker='*'是星
# s:散点的大小,大小想都一样的话就修改成一个常量eg:s=100
# c:散点的颜色,和原数组保持一致eg:c=np.random.rand(1000)没有渐变色
# cmap:colormap,调色板
# vmin,vmax:亮度设置,标量
# linewidths:设置好看的形状np.zeros(10)+5

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JrPVx7ml-1592114647298)(assets/38.png)]

5.2,散点矩阵

'''
pd.scatter_matrix(frame, alpha=0.5, figsize=None, ax=None, 
grid=False, diagonal='hist', marker='.', density_kwds=None, hist_kwds=None, range_padding=0.05, **kwds)
'''
from pandas.plotting import scatter_matrix  # pandas的画图库

df = pd.DataFrame(np.random.randn(100,4),columns = ['a','b','c','d'])
scatter_matrix(df,figsize=(10,6),
               marker = '.',
               diagonal='hist',
               alpha = 0.5,
               range_padding=0.5,
               color='r')
# diagonal:(hist,kde)必须其中选一个(直方/密度),
# range_padding:(float, 可选),图像在x轴、y轴原点附近的留白(padding),

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LuG6bUKc-1592114647304)(assets/39.png)]

六,极坐标图


调用subplot()创建子图时通过设置projection=‘polar’,便可创建一个极坐标子图,然后调用plot()在极坐标子图中绘图

6.1,创建极坐标轴

s = pd.Series(np.arange(20))
theta = np.arange(0, 2*np.pi, 0.02)
# theta创建的是一个度数数组,0~360度
# 创建数据

fig = plt.figure(figsize=(8, 4), facecolor='yellow')
ax1 = plt.subplot(121, polar=True)    # 也可以是projection = 'polar'
ax2 = fig.add_subplot(122)
# 通过polar=True创建极坐标图
# 121代表高100%,宽50%,第一幅图。122代表高100%,宽50%,第二幅图

ax1.plot(theta, theta*3, linestyle='--', color='g', lw=1)  # 每个度数上面的值
ax1.plot(s, linestyle='-', lw=2)  
ax2.plot(theta, theta*3, linestyle='--', color='g', lw=1)
ax2.plot(s, linestyle='-', lw=1)
# lw:线宽
# 其实极坐标里面的线是一条直线,每两个值之间的变化造成了视觉上是曲线

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-saNfyY1q-1592114647306)(assets/40.png)]

6.2,极坐标参数设置

theta = np.arange(0, 2*np.pi, 0.02)
plt.figure(figsize=(10, 10))
ax1 = plt.subplot(221, polar=True)
ax2 = plt.subplot(222, polar=True)
ax3 = plt.subplot(223, polar=True)
ax1.plot(theta, theta, lw=2, color='r')
ax2.plot(theta, theta, lw=2, color='b')
ax3.plot(theta, theta, lw=2, color='g')

ax2.set_theta_direction(-1)
# set_theta_direction():坐标轴方向,默认逆时针

ax2.set_thetagrids(np.arange(0.0, 360.0, 45.0), list('abcdefgh'))
ax2.set_rgrids(np.arange(0.1, 1.5, 0.2))
# set_thetagrids():设置极坐标角度显示标签
# set_rgrids():设置极坐标值范围,参数必须是整数

ax3.set_theta_offset(np.pi/2)
# 设置整个极坐标的角度偏转,逆时针,要求弧度制

ax3.set_rlim(0.2, 5)
ax3.set_rmax(5)
ax3.set_rticks(np.arange(0.1, 1.5, 0.2))
# set_rlim:设定边界极径边界
# set_rmax():设置边界极径最大边界值
# set_rticks():设置极径网格线的显示范围(显示值范围),于set_rgrids()相似

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uOIvGlaF-1592114647308)(assets/41.png)]

6.3,雷达图

# 雷达图1 - 极坐标的折线图/填图 - plt.plot()
plt.figure(figsize=(8, 4))

ax1 = plt.subplot(111, polar=True)
ax1.set_title('radar mapn')

data1 = np.random.randint(1,10,10)
data2 = np.random.randint(1,10,10)
data3 = np.random.randint(1,10,10)
theta=np.arange(0,2*np.pi,2*np.pi/10)
data = [data1, data2, data3]
# 创建数据
print(theta)


for data in data:
    ax1.plot(theta, data, '--', label='data1')
    ax1.fill(theta, data, alpha=0.3)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MhAoxBs7-1592114647309)(assets/42.png)]

# 雷达图2 - 极坐标的折线图/填图 - plt.polar()
# 首尾闭合

labels = np.array(['a','b','c','d','e','f']) # 标签
dataLenth = 6 # 数据长度
data1 = np.random.randint(0,10,6) 
data2 = np.random.randint(0,10,6) # 数据

angles = np.linspace(0, 2*np.pi, dataLenth, endpoint=False) # 分割圆周长
data1 = np.concatenate((data1, [data1[0]])) # 闭合
data2 = np.concatenate((data2, [data2[0]])) # 闭合
angles = np.concatenate((angles, [angles[0]])) # 闭合

plt.polar(angles, data1, 'o-', linewidth=1) #做极坐标系
plt.fill(angles, data1, alpha=0.25)# 填充
plt.polar(angles, data2, 'o-', linewidth=1) #做极坐标系
plt.fill(angles, data2, alpha=0.25)# 填充

plt.thetagrids(angles * 180/np.pi, labels) # 设置网格、标签
plt.ylim(0,10)  # polar的极值设置为ylim

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ryrI6cPd-1592114647311)(assets/43.png)]

# 极轴图 - 极坐标的柱状图

plt.figure(figsize=(8,4))

ax1= plt.subplot(111, projection='polar')
ax1.set_title('radar mapn')  # 创建标题
ax1.set_rlim(0,12)

data = np.random.randint(1,10,10)
theta=np.arange(0,2*np.pi,2*np.pi/10)
# 创建数据

bar = ax1.bar(theta,data,alpha=0.5)
for r,bar in zip(data, bar):
    bar.set_facecolor(plt.cm.jet(r/10.))  # 设置颜色
plt.thetagrids(np.arange(0.0, 360.0, 90), []) # 设置网格、标签(这里是空标签,则不显示内容)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eAmUUAfQ-1592114647314)(assets/44.png)]

6.4,箱形图

"""
    箱型图:又称为盒须图、盒式图、盒状图或箱线图,是一种用作显示一组数据分散情况资料的统计图
    包含一组数据的:最大值、最小值、中位数、上四分位数(Q3)、下四分位数(Q1)、异常值
    ① 中位数 → 一组数据平均分成两份,中间的数
    ② 上四分位数Q1 → 是将序列平均分成四份,计算(n+1)/4与(n-1)/4两种,一般使用(n+1)/4
    ③ 下四分位数Q3 → 是将序列平均分成四份,计算(1+n)/4*3=6.75
    ④ 内限 → T形的盒须就是内限,最大值区间Q3+1.5IQR,最小值区间Q1-1.5IQR (IQR=Q3-Q1)
    ⑤ 外限 → T形的盒须就是内限,最大值区间Q3+3IQR,最小值区间Q1-3IQR (IQR=Q3-Q1)
    ⑥ 异常值 → 内限之外 - 中度异常,外限之外 - 极度异常

    plt.plot.box(),plt.boxplot()
"""
# plt.plot.box()绘制

fig,axes = plt.subplots(2,1,figsize=(10,6))
df = pd.DataFrame(np.random.rand(10, 5), columns=['A', 'B', 'C', 'D', 'E'])
color = dict(boxes='DarkGreen', whiskers='DarkOrange', medians='DarkBlue', caps='Gray')
# 箱型图着色
# boxes → 箱线
# whiskers → 分位数与error bar横线之间竖线的颜色
# medians → 中位数线颜色
# caps → error bar横线颜色

df.plot.box(ylim=[0,1.2],
           grid = True,
           color = color,
           ax = axes[0])
# color:样式填充

df.plot.box(vert=False, 
            positions=[1, 4, 5, 6, 8],
            ax = axes[1],
            grid = True,
           color = color)
# vert:是否垂直,默认True
# position:箱型图占位

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OqVQw0N1-1592114647315)(assets/45.png)]

# plt.boxplot()绘制
# pltboxplot(x, notch=None, sym=None, vert=None, whis=None, positions=None, widths=None, patch_artist=None, bootstrap=None, 
# usermedians=None, conf_intervals=None, meanline=None, showmeans=None, showcaps=None, showbox=None, showfliers=None, boxprops=None, 
# labels=None, flierprops=None, medianprops=None, meanprops=None, capprops=None, whiskerprops=None, manage_xticks=True, autorange=False, 
# zorder=None, hold=None, data=None)

df = pd.DataFrame(np.random.rand(10, 5), columns=['A', 'B', 'C', 'D', 'E'])
plt.figure(figsize=(10,4))
# 创建图表、数据

f = df.boxplot(sym = 'o',  # 异常点形状,参考marker
               vert = True,  # 是否垂直
               whis = 1.5,  # IQR,默认1.5,也可以设置区间比如[5,95],代表强制上下边缘为数据95%和5%位置
               patch_artist = True,  # 上下四分位框内是否填充,True为填充
               meanline = False,showmeans=True,  # 是否有均值线及其形状
               showbox = True,  # 是否显示箱线
               showcaps = True,  # 是否显示边缘线
               showfliers = True,  # 是否显示异常值
               notch = False,  # 中间箱体是否缺口
               return_type='dict'  # 返回类型为字典
              ) 
plt.title('boxplot')
print(f)

for box in f['boxes']:
    box.set( color='b', linewidth=1)        # 箱体边框颜色
    box.set( facecolor = 'b' ,alpha=0.5)    # 箱体内部填充颜色
for whisker in f['whiskers']:
    whisker.set(color='k', linewidth=0.5,linestyle='-')
for cap in f['caps']:
    cap.set(color='gray', linewidth=2)
for median in f['medians']:
    median.set(color='DarkBlue', linewidth=2)
for flier in f['fliers']:
    flier.set(marker='o', color='y', alpha=0.5)
# boxes, 箱线
# medians, 中位值的横线,
# whiskers, 从box到error bar之间的竖线.
# fliers, 异常值
# caps, error bar横线
# means, 均值的横线,

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z040N5bI-1592114647318)(assets/46.png)]

# plt.boxplot()绘制
# 分组汇总

df = pd.DataFrame(np.random.rand(10,2), columns=['Col1', 'Col2'] )
df['X'] = pd.Series(['A','A','A','A','A','B','B','B','B','B'])
df['Y'] = pd.Series(['A','B','A','B','A','B','A','B','A','B'])
print(df.head())
df.boxplot(by = 'X')
df.boxplot(column=['Col1','Col2'], by=['X','Y'])
# columns:按照数据的列分子图
# by:按照列分组做箱型图


r in f['fliers']:
    flier.set(marker='o', color='y', alpha=0.5)
# boxes, 箱线
# medians, 中位值的横线,
# whiskers, 从box到error bar之间的竖线.
# fliers, 异常值
# caps, error bar横线
# means, 均值的横线,



# plt.boxplot()绘制
# 分组汇总

df = pd.DataFrame(np.random.rand(10,2), columns=['Col1', 'Col2'] )
df['X'] = pd.Series(['A','A','A','A','A','B','B','B','B','B'])
df['Y'] = pd.Series(['A','B','A','B','A','B','A','B','A','B'])
print(df.head())
df.boxplot(by = 'X')
df.boxplot(column=['Col1','Col2'], by=['X','Y'])
# columns:按照数据的列分子图
# by:按照列分组做箱型图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aarqIYCx-1592114647320)(assets/47.png)]

最后

以上就是合适小蝴蝶为你收集整理的画图工具:Matplotlib(2)的全部内容,希望文章能够帮你解决画图工具:Matplotlib(2)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部