matplotlib可视化

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')# 绘制核密度图, 就是一个线状图
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值