matplotlib.pyplot
******************************************************************************************************************
调整子图的位置
默认情况下, matplotlib会在subplot外围留下⼀定的边距, 并在subplot之间留下⼀定的间距。 间距跟图像的⾼度和宽度有关, 因此, 如果你调整
了图像⼤⼩( 不管是编程还是⼿⼯) , 间距也会⾃动调整。 利⽤Figure的subplots_adjust⽅法可以轻⽽易举地修改间距, 此外, 它也是个顶级函数:
subplots_adjust(left=None, bottom=None, right=None, top=None,
wspace=None, hspace=None)
/***********默认值
wspace和hspace⽤于控制宽度和⾼度的百分⽐, 可以⽤作subplot之间的间距。
left = 0.125 # the left side of the subplots of the figure
right = 0.9 # the right side of the subplots of the figure
bottom = 0.1 # the bottom of the subplots of the figure
top = 0.9 # the top of the subplots of the figure
wspace = 0.2 # the amount of width reserved for space between subplots,
# expressed as a fraction of the average axis width
hspace = 0.2 # the amount of height reserved for space between subplots,
# expressed as a fraction of the average axis height
**************************/
plt.subplots_adjust(top=0.92, bottom=0.08, left=0.10, right=0.95, hspace=0.25,
wspace=0.35)
************************************************************************************
(1)绘制一个图
import matplotlib.pyplot as plt
plt.figure(figsize=(10, 5)) # 设置图像显示大小
plt.plot(x, y, color, linestyle, marker, markerstyle)# 绘制线状图
plt.plot()参数设置
Property Value Type
alpha 控制透明度,0为完全透明,1为不透明
animated [True False]
antialiased or aa [True False]
clip_box a matplotlib.transform.Bbox instance
clip_on [True False]
clip_path a Path instance and a Transform instance, a Patch
color or c 颜色设置
contains the hit testing function
dash_capstyle [‘butt’ ‘round’ ‘projecting’]
dash_joinstyle [‘miter’ ‘round’ ‘bevel’]
dashes sequence of on/off ink in points
data 数据(np.array xdata, np.array ydata)
figure 画板对象a matplotlib.figure.Figure instance
label 图示
linestyle or ls 线型风格[‘-’ ‘–’ ‘-.’ ‘:’ ‘steps’ …]
linewidth or lw 宽度float value in points
lod [True False]
marker 数据点的设置[‘+’ ‘,’ ‘.’ ‘1’ ‘2’ ‘3’ ‘4’]
markeredgecolor or mec any matplotlib color
markeredgewidth or mew float value in points
markerfacecolor or mfc any matplotlib color
markersize or ms float
markevery [ None integer (startind, stride) ]
picker used in interactive line selection
pickradius the line pick selection radius
solid_capstyle [‘butt’ ‘round’ ‘projecting’]
solid_joinstyle [‘miter’ ‘round’ ‘bevel’]
transform a matplotlib.transforms.Transform instance
visible [True False]
xdata np.array
ydata np.array
zorder any number
**********************************************************************************************************************
plt.hist(y, bins, density)# 绘制条形图
:
n, bins, patches = plt.hist(arr, bins=10, normed=0, facecolor='black', edgecolor='black',alpha=1,histtype='bar')
hist的参数非常多,但常用的就这六个,只有第一个是必须的,后面四个可选
arr: 需要计算直方图的一维数组
bins: 直方图的柱数,可选项,默认为10
normed: 是否将得到的直方图向量归一化。默认为0
facecolor: 直方图颜色
edgecolor: 直方图边框颜色
alpha: 透明度
histtype: 直方图类型,‘bar’, ‘barstacked’, ‘step’, ‘stepfilled’
返回值 :
n: 直方图向量,是否归一化由参数normed设定
bins: 返回各个bin的区间范围
patches: 返回每个bin里面包含的数据,是一个list
************************************************************************************************************************
plt.grid() # 显示网格
plt.bar(x, y, alpha)# 绘制柱状图,alpha指的是透明度
plt.scatter(x, y, marker='', markersize) # 绘制散点图, marker可以是
scatter:x,y表示横纵坐标,color表示颜色:'r':红 'b':蓝色 等,marker:标记,edgecolors:标记边框色'r'、'g'等,s:size大小
*********************************************************************************************************************
plt.pie(x, labels, autopct, explode) # 绘制饼状图************************
:
pie(x, explode=None, labels=None,
colors=('b', 'g', 'r', 'c', 'm', 'y', 'k', 'w'),
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 )
x (每一块)的比例,如果sum(x) > 1会使用sum(x)归一化
labels (每一块)饼图外侧显示的说明文字
explode (每一块)离开中心距离
startangle 起始绘制角度,默认图是从x轴正方向逆时针画起,如设定=90则从y轴正方向画起
shadow 是否阴影
labeldistance label绘制位置,相对于半径的比例, 如<1则绘制在饼图内侧
autopct 控制饼图内百分比设置,可以使用format字符串或者format function
'%1.1f'指小数点前后位数(没有用空格补齐)
pctdistance 类似于labeldistance,指定autopct的位置刻度
radius 控制饼图半径
返回值:
如果没有设置autopct,返回(patches, texts)
如果设置autopct,返回(patches, texts, autotexts)
patches -- list --matplotlib.patches.Wedge对象
texts autotexts -- matplotlib.text.Text对象
........................................................................................................................
plt.title() # 标题
plt.text(x, y, '6666')# 插入文本
plt.xticks(list-like, rotation) # X轴的刻度, 旋转度
plt.yticks(list-like) # y轴的刻度
plt.xlabel()# X轴的标签
plt.ylabel()# y轴的标签
plt.xlim() # 限制X轴的范围
plt.ylim() # 限制y轴的范围
plt.show() # 显示
plt.savefig('path/img.png', dpi=300, bbox_inches='tight')# 保存图片
(2)绘制多个图
fig = plt.figure(figsize=(10, 8))# 画布大小
ax = fig.subplot(2, 3) # 绘制2行3列的图
ax[0][0].plot()
ax[0][0].set_xticklabels() # 设置X轴刻度标签
ax[0][0].set_xlabel() # 设置X轴的标签
ax[0][0].set_xlim() # 限制X轴的范围
ax[0][0].set_grid() # 显示网格
ax.set_xlim(1,4) # 设定x轴范围
ax.set_ylim(-8.5,11) # 设定y轴范围
ax.set_xticks(range(1,4.1,0.5)) # 设定x轴的标签
ax.set_yticks(range(-8,11,2)) # 设定y轴的标签
ax.set_xticklabels(list("abcdefg")) # 设定x轴的标签文字
6.2 pandas的绘图
pandas 的绘图功能是以matplotlib为基础的
import pandas as pd
from pandas import DataFrame
data = {'id':[1001,1002,1003,1004,1005,1006],
'date':pd.date_range('20130102', periods=6),
'city':['Beijing ', 'SH', ' guangzhou ', 'Shenzhen', 'shanghai', 'BEIJING '],
'age':[23,44,54,32,34,32],
'category':['100-A','100-B','110-A','110-C','210-A','130-F'],
'price':[1200,np.nan,2133,5433,np.nan,4432]}
# print(pd.DataFrame(data))
df = DataFrame(data)
df.plot(kind='line', xlim, ylim, grid) #绘制线状图
df.plot(kind='bar', stacked=True) #绘制柱状图 bar 竖直 barh 水平
S.hist(bins, density) # 绘制条形图
S.plot(kind='ked')# 绘制核密度图, 就是一个线状图
matplotlib可视化
最新推荐文章于 2024-01-03 19:18:09 发布