'''
【课程3.】 基本图表绘制 plt.plot() 图表类别:线形图、柱状图、密度图,以横纵坐标两个维度为主
同时可延展出多种其他图表样式 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) '''
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
% matplotlib inline
# Series直接生成图表

ts = pd.Series(np.random.randn(), index=pd.date_range('1/1/2000', periods=))
ts = ts.cumsum()
ts.plot(kind='line',
label = 'hehe',
style = '--g.',
color = 'red',
alpha = 0.4,
use_index = True,
rot = ,
grid = True,
ylim = [-,],
yticks = list(range(-,,)),
figsize = (,),
title = 'test',
legend = True)
#plt.grid(True, linestyle = "--",color = "gray", linewidth = "0.5",axis = 'x') # 网格
plt.legend()
# Series.plot():series的index为横坐标,value为纵坐标
# kind → line,bar,barh...(折线图,柱状图,柱状图-横...)
# label → 图例标签,Dataframe格式以列名为label
# style → 风格字符串,这里包括了linestyle(-),marker(.),color(g)
# color → 颜色,有color指定时候,以color颜色为准
# alpha → 透明度,-
# use_index → 将索引用为刻度标签,默认为True
# rot → 旋转刻度标签,-
# grid → 显示网格,一般直接用plt.grid
# xlim,ylim → x,y轴界限
# xticks,yticks → x,y轴刻度值
# figsize → 图像大小
# title → 图名
# legend → 是否显示图例,一般直接用plt.legend()
# 也可以 → plt.plot()

  输出:

# Dataframe直接生成图表

df = pd.DataFrame(np.random.randn(, ), index=ts.index, columns=list('ABCD'))
df = df.cumsum()
df.plot(kind='line',
style = '--.',
alpha = 0.4,
use_index = True,
rot = ,
grid = True,
figsize = (,),
title = 'test',
legend = True,
subplots = False,
colormap = 'Greens')
# subplots → 是否将各个列绘制到不同图表,默认False
# 也可以 → plt.plot(df)

  输出:

'''
【课程3.】 柱状图、堆叠图 plt.plot(kind='bar/barh') , plt.bar() '''
# 柱状图与堆叠图

fig,axes = plt.subplots(,,figsize = (,))
s = pd.Series(np.random.randint(,,),index = list('abcdefghijklmnop'))
df = pd.DataFrame(np.random.rand(,), columns=['a','b','c']) s.plot(kind='bar',color = 'k',grid = True,alpha = 0.5,ax = axes[]) # ax参数 → 选择第几个子图
# 单系列柱状图方法一:plt.plot(kind='bar/barh') df.plot(kind='bar',ax = axes[],grid = True,colormap='Reds_r')
# 多系列柱状图 df.plot(kind='bar',ax = axes[],grid = True,colormap='Blues_r',stacked=True)
# 多系列堆叠图
# stacked → 堆叠 df.plot.barh(ax = axes[],grid = True,stacked=True,colormap = 'BuGn_r')
# 新版本plt.plot.<kind>

  输出:

# 柱状图 plt.bar()

plt.figure(figsize=(,))
x = np.arange()
y1 = np.random.rand()
y2 = -np.random.rand() plt.bar(x,y1,width = ,facecolor = 'yellowgreen',edgecolor = 'white',yerr = y1*0.1)
plt.bar(x,y2,width = ,facecolor = 'lightskyblue',edgecolor = 'white',yerr = y2*0.1)
# x,y参数:x,y值
# width:宽度比例
# facecolor柱状图里填充的颜色、edgecolor是边框的颜色
# left-每个柱x轴左边界,bottom-每个柱y轴下边界 → bottom扩展即可化为甘特图 Gantt Chart
# align:决定整个bar图分布,默认left表示默认从左边界开始绘制,center会将图绘制在中间位置
# xerr/yerr :x/y方向error bar for i,j in zip(x,y1):
plt.text(i+0.3,j-0.15,'%.2f' % j, color = 'white')
for i,j in zip(x,y2):
plt.text(i+0.3,j+0.05,'%.2f' % -j, color = 'white')
# 给图添加text
# zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。

  输出:

# 外嵌图表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 = [[ , , , , ],
[ , , , , ],
[ , , , , ],
[ , , , , ],
[, , , , ]]
columns = ('Freeze', 'Wind', 'Flood', 'Quake', 'Hail')
rows = ['%d year' % x for x in (, , , , )]
df = pd.DataFrame(data,columns = ('Freeze', 'Wind', 'Flood', 'Quake', 'Hail'),
index = ['%d year' % x for x in (, , , , )])
print(df) df.plot(kind='bar',grid = True,colormap='Blues_r',stacked=True,figsize=(,))
# 创建堆叠图 plt.table(cellText = data,
cellLoc='center',
cellColours = None,
rowLabels = rows,
rowColours = plt.cm.BuPu(np.linspace(, 0.5,))[::-], # BuPu可替换成其他colormap
colLabels = columns,
colColours = plt.cm.Reds(np.linspace(, 0.5,))[::-],
rowLoc='right',
loc='bottom')
# cellText:表格文本
# cellLoc:cell内文本对齐位置
# rowLabels:行标签
# colLabels:列标签
# rowLoc:行标签对齐位置
# loc:表格位置 → left,right,top,bottom plt.xticks([])
# 不显示x轴标注

  输出:

          Freeze    Wind   Flood   Quake    Hail
year
year
year
year
year

'''
【课程3.】 面积图、填图、饼图 plt.plot.area()
plt.fill(), plt.fill_between()
plt.pie() '''
# 面积图

fig,axes = plt.subplots(,,figsize = (,))
df1 = pd.DataFrame(np.random.rand(, ), columns=['a', 'b', 'c', 'd'])
df2 = pd.DataFrame(np.random.randn(, ), columns=['a', 'b', 'c', 'd']) df1.plot.area(colormap = 'Greens_r',alpha = 0.5,ax = axes[])
df2.plot.area(stacked=False,colormap = 'Set2',alpha = 0.5,ax = axes[])
# 使用Series.plot.area()和DataFrame.plot.area()创建面积图
# stacked:是否堆叠,默认情况下,区域图被堆叠
# 为了产生堆积面积图,每列必须是正值或全部负值!
# 当数据有NaN时候,自动填充0,所以图标签需要清洗掉缺失值

  输出:

# 填图

fig,axes = plt.subplots(,,figsize = (,))

x = np.linspace(, , )
y1 = np.sin( * np.pi * x) * np.exp(- * x)
y2 = -np.sin( * np.pi * x) * np.exp(- * x)
axes[].fill(x, y1, 'r',alpha=0.5,label='y1')
axes[].fill(x, y2, 'g',alpha=0.5,label='y2')
# 对函数与坐标轴之间的区域进行填充,使用fill函数
# 也可写成:plt.fill(x, y1, 'r',x, y2, 'g',alpha=0.5) x = np.linspace(, * np.pi, )
y1 = np.sin(x)
y2 = np.sin( * x)
axes[].fill_between(x, y1, y2, color ='b',alpha=0.5,label='area')
# 填充两个函数之间的区域,使用fill_between函数 for i in range():
axes[i].legend()
axes[i].grid()
# 添加图例、格网

  输出:

# 饼图 plt.pie()
# 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=(, ), frame=False, hold=None, data=None) s = pd.Series( * np.random.rand(), index=['a', 'b', 'c', 'd'], name='series')
plt.axis('equal') # 保证长宽相等
plt.pie(s,
explode = [0.1,,,],
labels = s.index,
colors=['r', 'g', 'b', 'c'],
autopct='%.2f%%',
pctdistance=0.6,
labeldistance = 1.2,
shadow = True,
startangle=,
radius=1.5,
frame=False)
print(s)
# 第一个参数:数据
# explode:指定每部分的偏移量
# labels:标签
# colors:颜色
# autopct:饼图上的数据标签显示方式
# pctdistance:每个饼切片的中心和通过autopct生成的文本开始之间的比例
# labeldistance:被画饼标记的直径,默认值:1.1
# shadow:阴影
# startangle:开始角度
# radius:半径
# frame:图框
# counterclock:指定指针方向,顺时针或者逆时针

  输出:

'''
【课程3.】 直方图 plt.hist(x, bins=, 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())
s.hist(bins = ,
histtype = 'bar',
align = 'mid',
orientation = 'vertical',
alpha=0.5,
normed =True)
# bin:箱子的宽度
# normed 标准化
# histtype 风格,bar,barstacked,step,stepfilled
# orientation 水平还是垂直{‘horizontal’, ‘vertical’}
# align : {‘left’, ‘mid’, ‘right’}, optional(对齐方式) s.plot(kind='kde',style='k--')
# 密度图

  输出:

# 堆叠直方图

plt.figure(num=)
df = pd.DataFrame({'a': np.random.randn() + , 'b': np.random.randn(),
'c': np.random.randn() - , 'd': np.random.randn()-},
columns=['a', 'b', 'c','d'])
df.plot.hist(stacked=True,
bins=,
colormap='Greens_r',
alpha=0.5,
grid=True)
# 使用DataFrame.plot.hist()和Series.plot.hist()方法绘制
# stacked:是否堆叠 df.hist(bins=)
# 生成多个直方图

  输出:

array([[<matplotlib.axes._subplots.AxesSubplot object at 0x000000000E3E70B8>,
<matplotlib.axes._subplots.AxesSubplot object at 0x000000000C0F50F0>],
[<matplotlib.axes._subplots.AxesSubplot object at 0x000000000BA11E48>,
<matplotlib.axes._subplots.AxesSubplot object at 0x000000000E434B70>]], dtype=object)
<matplotlib.figure.Figure at 0xbcbbb00>

'''
【课程3.】 散点图、矩阵散点图 plt.scatter(), pd.scatter_matrix() '''
# plt.scatter()散点图
# plt.scatter(x, y, s=, 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=(,))
x = np.random.randn()
y = np.random.randn()
plt.scatter(x,y,marker='.',
s = np.random.randn()*,
cmap = 'Reds',
c = y,
alpha = 0.8,)
plt.grid()
# s:散点的大小
# c:散点的颜色
# vmin,vmax:亮度设置,标量
# cmap:colormap

  输出:

# pd.scatter_matrix()散点矩阵
# 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) df = pd.DataFrame(np.random.randn(,),columns = ['a','b','c','d'])
pd.scatter_matrix(df,figsize=(,),
marker = 'o',
diagonal='kde',
alpha = 0.5,
range_padding=0.1)
# diagonal:({‘hist’, ‘kde’}),必须且只能在{‘hist’, ‘kde’}中选择1个 → 每个指标的频率图
# range_padding:(float, 可选),图像在x轴、y轴原点附近的留白(padding),该值越大,留白距离越大,图像远离坐标原点

  输出:

array([[<matplotlib.axes._subplots.AxesSubplot object at 0x000000000E55AB38>,
<matplotlib.axes._subplots.AxesSubplot object at 0x000000000E889320>,
<matplotlib.axes._subplots.AxesSubplot object at 0x000000000E8D1EF0>,
<matplotlib.axes._subplots.AxesSubplot object at 0x000000000E911518>],
[<matplotlib.axes._subplots.AxesSubplot object at 0x000000000E95AFD0>,
<matplotlib.axes._subplots.AxesSubplot object at 0x000000000E99C080>,
<matplotlib.axes._subplots.AxesSubplot object at 0x000000000E9E5C50>,
<matplotlib.axes._subplots.AxesSubplot object at 0x000000000E5403C8>],
[<matplotlib.axes._subplots.AxesSubplot object at 0x000000000E84DAC8>,
<matplotlib.axes._subplots.AxesSubplot object at 0x000000000E4085C0>,
<matplotlib.axes._subplots.AxesSubplot object at 0x000000000D1384A8>,
<matplotlib.axes._subplots.AxesSubplot object at 0x000000000D17D5F8>],
[<matplotlib.axes._subplots.AxesSubplot object at 0x000000000E3A19E8>,
<matplotlib.axes._subplots.AxesSubplot object at 0x000000000CE99128>,
<matplotlib.axes._subplots.AxesSubplot object at 0x000000000D0D73C8>,
<matplotlib.axes._subplots.AxesSubplot object at 0x000000000EA51F98>]], dtype=object)

'''
【课程3.】 极坐标图 调用subplot()创建子图时通过设置projection='polar',便可创建一个极坐标子图,然后调用plot()在极坐标子图中绘图 '''
# 创建极坐标轴

s = pd.Series(np.arange())
theta=np.arange(,*np.pi,0.02)
print(s.head())
print(theta[:])
# 创建数据 fig = plt.figure(figsize=(,))
ax1 = plt.subplot(, projection = 'polar')
ax2 = plt.subplot()
# 创建极坐标子图
# 还可以写:ax = fig.add_subplot(,polar=True) ax1.plot(theta,theta*,linestyle = '--',lw=)
ax1.plot(s, linestyle = '--', marker = '.',lw=)
ax2.plot(theta,theta*,linestyle = '--',lw=)
ax2.plot(s)
plt.grid()
# 创建极坐标图,参数1为角度(弧度制),参数2为value
# lw → 线宽

  输出:


dtype: int32
[ . 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18]

# 极坐标参数设置

theta=np.arange(,*np.pi,0.02)
plt.figure(figsize=(,))
ax1= plt.subplot(, projection='polar')
ax2= plt.subplot(, projection='polar')
ax1.plot(theta,theta/,'--',lw=)
ax2.plot(theta,theta/,'--',lw=)
# 创建极坐标子图ax ax2.set_theta_direction(-)
# set_theta_direction():坐标轴正方向,默认逆时针 ax2.set_thetagrids(np.arange(0.0, 360.0, ),['a','b','c','d'])
ax2.set_rgrids(np.arange(0.2,,0.4))
# set_thetagrids():设置极坐标角度网格线显示及标签 → 网格和标签数量一致
# set_rgrids():设置极径网格线显示,其中参数必须是正数 ax2.set_theta_offset(np.pi/)
# set_theta_offset():设置角度偏移,逆时针,弧度制 ax2.set_rlim(0.2,1.2)
ax2.set_rmax()
ax2.set_rticks(np.arange(0.1, 1.5, 0.2))
# set_rlim():设置显示的极径范围
# set_rmax():设置显示的极径最大值
# set_rticks():设置极径网格线的显示范围

  输出:

[<matplotlib.axis.YTick at 0xec59fd0>,
<matplotlib.axis.YTick at 0xec5fc50>,
<matplotlib.axis.YTick at 0xec7dc50>,
<matplotlib.axis.YTick at 0xec813c8>,
<matplotlib.axis.YTick at 0xec81b00>,
<matplotlib.axis.YTick at 0xec76160>,
<matplotlib.axis.YTick at 0xec84a90>]

# 雷达图1 - 极坐标的折线图/填图 - plt.plot()

plt.figure(figsize=(,))

ax1= plt.subplot(, projection='polar')
ax1.set_title('radar map\n') # 创建标题
ax1.set_rlim(,) data1 = np.random.randint(,,)
data2 = np.random.randint(,,)
data3 = np.random.randint(,,)
theta=np.arange(,*np.pi,*np.pi/)
# 创建数据 ax1.plot(theta,data1,'.--',label='data1')
ax1.fill(theta,data1,alpha=0.2)
ax1.plot(theta,data2,'.--',label='data2')
ax1.fill(theta,data2,alpha=0.2)
ax1.plot(theta,data3,'.--',label='data3')
ax1.fill(theta,data3,alpha=0.2)
# 绘制雷达线

  输出:

# 雷达图2 - 极坐标的折线图/填图 - plt.polar()
# 首尾闭合 labels = np.array(['a','b','c','d','e','f']) # 标签
dataLenth = # 数据长度
data1 = np.random.randint(,,)
data2 = np.random.randint(,,) # 数据 angles = np.linspace(, *np.pi, dataLenth, endpoint=False) # 分割圆周长
data1 = np.concatenate((data1, [data1[]])) # 闭合
data2 = np.concatenate((data2, [data2[]])) # 闭合
angles = np.concatenate((angles, [angles[]])) # 闭合 plt.polar(angles, data1, 'o-', linewidth=) #做极坐标系
plt.fill(angles, data1, alpha=0.25)# 填充
plt.polar(angles, data2, 'o-', linewidth=) #做极坐标系
plt.fill(angles, data2, alpha=0.25)# 填充 plt.thetagrids(angles * /np.pi, labels) # 设置网格、标签
plt.ylim(,) # polar的极值设置为ylim

  输出:

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

plt.figure(figsize=(,))

ax1= plt.subplot(, projection='polar')
ax1.set_title('radar map\n') # 创建标题
ax1.set_rlim(,) data = np.random.randint(,,)
theta=np.arange(,*np.pi,*np.pi/)
# 创建数据 bar = ax1.bar(theta,data,alpha=0.5)
for r,bar in zip(data, bar):
bar.set_facecolor(plt.cm.jet(r/.)) # 设置颜色
plt.thetagrids(np.arange(0.0, 360.0, ), []) # 设置网格、标签(这里是空标签,则不显示内容)

  输出:

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

fig,axes = plt.subplots(,,figsize=(,))
df = pd.DataFrame(np.random.rand(, ), 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=[,1.2],
grid = True,
color = color,
ax = axes[])
# color:样式填充 df.plot.box(vert=False,
positions=[, , , , ],
ax = axes[],
grid = True,
color = color)
# vert:是否垂直,默认True
# position:箱型图占位

  输出:

# 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(, ), columns=['A', 'B', 'C', 'D', 'E'])
plt.figure(figsize=(,))
# 创建图表、数据 f = df.boxplot(sym = 'o', # 异常点形状,参考marker
vert = True, # 是否垂直
whis = 1.5, # IQR,默认1.,也可以设置区间比如[,],代表强制上下边缘为数据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=) # 箱体边框颜色
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=)
for median in f['medians']:
median.set(color='DarkBlue', linewidth=)
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, 均值的横线,

  输出:

{'caps': [<matplotlib.lines.Line2D object at 0x0000000010042CF8>, <matplotlib.lines.Line2D object at 0x0000000010047BE0>, <matplotlib.lines.Line2D object at 0x0000000010057C88>, <matplotlib.lines.Line2D object at 0x000000001005DB70>, <matplotlib.lines.Line2D object at 0x000000001006EC18>, <matplotlib.lines.Line2D object at 0x0000000010074B00>, <matplotlib.lines.Line2D object at 0x0000000010085BA8>, <matplotlib.lines.Line2D object at 0x000000001008BA90>, <matplotlib.lines.Line2D object at 0x00000000104896D8>, <matplotlib.lines.Line2D object at 0x00000000104998D0>], 'whiskers': [<matplotlib.lines.Line2D object at 0x0000000010042198>, <matplotlib.lines.Line2D object at 0x0000000010042B70>, <matplotlib.lines.Line2D object at 0x0000000010057208>, <matplotlib.lines.Line2D object at 0x0000000010057B00>, <matplotlib.lines.Line2D object at 0x000000001006E198>, <matplotlib.lines.Line2D object at 0x000000001006EA90>, <matplotlib.lines.Line2D object at 0x0000000010085128>, <matplotlib.lines.Line2D object at 0x0000000010085A20>, <matplotlib.lines.Line2D object at 0x000000001009B0B8>, <matplotlib.lines.Line2D object at 0x000000001009B9B0>], 'medians': [<matplotlib.lines.Line2D object at 0x0000000010047D68>, <matplotlib.lines.Line2D object at 0x000000001005DCF8>, <matplotlib.lines.Line2D object at 0x0000000010074C88>, <matplotlib.lines.Line2D object at 0x000000001008BC18>, <matplotlib.lines.Line2D object at 0x0000000010497828>], 'fliers': [<matplotlib.lines.Line2D object at 0x000000001004CD30>, <matplotlib.lines.Line2D object at 0x0000000010062CC0>, <matplotlib.lines.Line2D object at 0x000000001007BC50>, <matplotlib.lines.Line2D object at 0x0000000010090BE0>, <matplotlib.lines.Line2D object at 0x00000000100A37B8>], 'means': [<matplotlib.lines.Line2D object at 0x000000001004C5C0>, <matplotlib.lines.Line2D object at 0x0000000010062550>, <matplotlib.lines.Line2D object at 0x000000001007B4E0>, <matplotlib.lines.Line2D object at 0x0000000010090470>, <matplotlib.lines.Line2D object at 0x00000000102CFC18>], 'boxes': [<matplotlib.patches.PathPatch object at 0x00000000104BAB00>, <matplotlib.patches.PathPatch object at 0x0000000010051C50>, <matplotlib.patches.PathPatch object at 0x0000000010069B00>, <matplotlib.patches.PathPatch object at 0x000000001007EA90>, <matplotlib.patches.PathPatch object at 0x0000000010096B00>]}

# 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:按照列分组做箱型图

  输出:

       Col1      Col2  X  Y
0.884439 0.801121 A A
0.802741 0.390957 A B
0.139452 0.805676 A A
0.030047 0.571676 A B
0.654272 0.733307 A A

图表绘制工具--Matplotlib 2的更多相关文章

  1. 图表绘制工具--Matplotlib 1

    ''' [课程3.] Matplotlib简介及图表窗口 Matplotlib → 一个python版的matlab绘图接口,以2D为主,支持python.numpy.pandas基本数据结构,运营高 ...

  2. 【网易微专业】图表绘制工具Matplotlib

    01 与图片的交互方式设置 这一小节简要介绍一下Matplotlib的交互方式 import pandas as pd import numpy as np import matplotlib.pyp ...

  3. 图表绘制工具--Matplotlib 3

    ''' [课程3.] 表格样式创建 表格视觉样式:Dataframe.style → 返回pandas.Styler对象的属性,具有格式化和显示Dataframe的有用方法 样式创建: ① Style ...

  4. 让IE8支持HTML5及canvas功能!chart.js图表绘制工具库IE8上兼容方案

    第一步,我们加上对html5的支持. <!--[if IE]> <script src="/public/html5.js" type="text/ja ...

  5. Matplotlib 图表绘制工具学习笔记

    import numpy as np import matplotlib.pyplot as plt import pandas as pd arr1 = np.random.rand(10)#一维数 ...

  6. Python图表绘制:matplotlib绘图库入门

    matplotlib 是Python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中. 它的文档相当完备,并 ...

  7. Python图表绘制:matplotlib绘图库入门(转)

    matplotlib 是Python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中. 它的文档相当完备,并 ...

  8. Android学习之 AChartEngine 图表绘制

    Android 开源图表绘制工具AChartEngine地址:http://code.google.com/p/achartengine/ AChartEngine Android实现图表绘制和展示( ...

  9. Matplotlib Toolkits:地图绘制工具

    Matplotlib Toolkits:地图绘制工具 有没有一种可以直接在详细地图(如谷歌地图)上绘制上百万坐标点的工具???谷歌地图坐标点多了也不能绘制了. Basemap (Not distrib ...

随机推荐

  1. get请求中文乱码问题

    Get中文乱码解决 Get请求类型: <form action="${pageContext.request.contextPath}/addArtical.action"  ...

  2. flask-login原理详解

    最近发现项目中使用的flask-login中有些bug,直接使用官网的方式确实可以用,但仅仅是可以用,对于原理或解决问题没有什么帮助,最近通过查看网上资料.分析源码.通过demo.从零开始总结了fla ...

  3. Hacker Cups and Balls Gym - 101234A 二分+线段树

    题目:题目链接 题意:有编号从1到n的n个球和n个杯子. 每一个杯子里有一个球, 进行m次排序操作,每次操作给出l,r. 如果l<r,将[l,r]范围内的球按升序排序, 否则降序排, 问中间位置 ...

  4. TensorFlow验证码识别

    本节我们来用 TensorFlow 来实现一个深度学习模型,用来实现验证码识别的过程,这里我们识别的验证码是图形验证码,首先我们会用标注好的数据来训练一个模型,然后再用模型来实现这个验证码的识别. 验 ...

  5. 5,Linux之文档与目录结构

    Linux文件系统结构 Linux目录结构的组织形式和Windows有很大的不同.首先Linux没有“盘(C盘.D盘.E盘)”的概念.已经建立文件系统的硬盘分区被挂载到某一个目录下,用户通过操作目录来 ...

  6. 《Cracking the Coding Interview》——第8章:面向对象设计——题目5

    2014-04-23 18:42 题目:设计一个在线阅读系统的数据结构. 解法:这题目太大了,我的个亲娘.显然你不可能一次加载一整本书,做到单页纸加载的粒度是很必要的.为了读书的连贯效果,预取个几页也 ...

  7. 《Cracking the Coding Interview》——第4章:树和图——题目9

    2014-03-19 05:07 题目:给定一棵二叉树T和一个值value,在T中找出所有加起来和等于value的路径.路径的起点和终点都可以是树的任意节点. 解法:我偷了个懒,直接把这棵树看成一个无 ...

  8. C++文件操作(转)

    C++文件操作(转) 第一个:简单,容易理解,常用:http://www.cnblogs.com/uniqueliu/archive/2011/08/03/2126545.html 第二个:详细的,如 ...

  9. 【Python】python模块加载

    一个python文件就是一个模块 标准模块 python自带的模块就是标准模块,也就说可以直接import进来的就是标准模块 import datetime import random 第三方模块 别 ...

  10. Java基础-3类和对象声明与创建

    一).在1和2中有粗略介绍过类和对象的概念,在这里简单回顾一下: 对象与类:一个实际或者虚拟的物体,这个物体既是我们的对象,这个物体呢又是属于一个分类,如动物类,人类 二).创建对象: 在创建对象的时 ...