python之可视化Matplotlib模块

本文要讲的是Matplotlib,一个强大的Python可视化库。通过模块,轻松实现曲线图、散点图、折线图、直方图、柱状图、饼图等。

一、曲线图

绘制单条曲线:
  x = [1,2,3,4,5,6,7,8,9,10]
  y = [10,9,8,7,6,5,4,3,2,1]
  plt.plot(x,y)
注意:y,x轴的值必须为数字

绘制抛物线:
  x = np.arange(-np.pi,np.pi,0.1)
  y = x**2
  plt.plot(x,y)

绘制正弦曲线图:
  x = np.linspace(-np.pi,np.pi,100)
  y = np.sin(x)
  plt.plot(x,y)

包含多个曲线的图:
1、连续调用多次plot函数
  plt.plot(x,y)
  plt.plot(x+2,y+2)
2、也可以在一个plot函数中传入多对X,Y值,在一个图中绘制多个曲线
  plt.plot(x,y,x-1,y+1)

plt.subplot(row,col,loc)
将多个曲线图绘制在一个table区域中:对象形式创建表图
  a=plt.subplot(row,col,loc) 创建曲线图 rol col可以决定table的大小
  a.plot(x,y) 绘制曲线图

屏幕快照 2018-11-07 下午5.44.30.png

网格线 plt.grid(XXX)
参数:
  axis:轴向
  color:支持十六进制颜色
  linestyle: -- -. :样式
  alpha:透明度
使用plt绘制:
plt.plot(x,y)
plt.grid(color='red',linestyle=':',alpha=0.5)
使用对象形式设置网格:
ax = plt.subplot(111)
ax.plot(x,y)
ax.grid(linestyle='--')

设置坐标轴界限
  axis方法:设置x,y轴刻度值的范围
  plt.axis([xmin,xmax,ymin,ymax])
关闭坐标轴
  plt.axis('off')
设置画布比例:plt.figure(figsize=(a,b)) a:x刻度比例 b:y刻度比例 (2:1)表示x刻度显示为y刻度显示的2倍

plt的xlabel方法、ylabel方法、 title方法
参数介绍:
  s 标签内容
  color 标签颜色
  fontsize 字体大小
  rotation 旋转角度
对象方法set_xlabel/ylabel()

图例
legend方法
两种传参方法:
  1.分别在plot函数中增加label参数,再调用plt.legend()方法显示
    plt.plot(x,label='AAA')
    plt.legend()
  2.直接在legend方法中传入字符串列表
    put.plot(x)
    plt.plot(y)
    plt.legend(['BBB','AAA'])
legend的参数
  loc参数:
    loc参数用于设置图例标签的位置,一般在legend函数内
    matplotlib已经预定义好几种数字表示的位置
  ncol参数:
    ncol控制图例中有几列,在legend中设置ncol

图像保存:
使用figure对象的savefig函数来保存图片
fig = plt.figure()---必须放置在绘图操作之前
figure.savefig的参数选项:
  filename:
    含有文件路径的字符串或Python的文件型对象。图像格式由文件扩展名推断得出,例如,.pdf推断出PDF,.png推断出PNG (“png”、“pdf”、“svg”、“ps”、“eps”……)
  dpi:
    图像分辨率(每英寸点数),默认为100
  facecolor
    打开保存图片查看 图像的背景色,默认为“w”(白色)

设置plot的风格和样式:
  plot语句中支持除X,Y以外的参数,以字符串形式存在,来控制颜色、线型、点型等要素,语法形式为:
  plt.plot(X, Y, 'format', ...)
-- 颜色
  参数color或c
-- 透明度
  alpha参数
-- 线型
  参数linestyle或ls
-- 线宽
  linewidth或lw参数
-- 点型
  marker 设置点形
  markersize 设置点形大小

二、直方图

plt.hist(x):
是一个特殊的柱状图,又叫做密度图。
【直方图的参数只有一个x!!!不像条形图需要传入x,y】
plt.hist()的参数
  bins
    直方图的柱数,可选项,默认为10
  color
    指定直方图的颜色。可以是单一颜色值或颜色的序列。如果指定了多个数据集合,例如DataFrame对象,颜色序列将会设置为相同的顺序。如果未指定,将会使用一个默认的线条颜色
  orientation
    通过设置orientation为horizontal创建水平直方图。默认值为vertical

三、条形图

plt.bar(x,y):
plt.bar()垂直条形图
  参数:第一个参数是索引。第二个参数是数据值。第三个参数是条形的宽度。
条形图有两个参数x,y
  width 纵向设置条形宽度
  height 横向设置条形高度
plt.barh()水平条形图

四、饼图

plt.pie(x)
饼图也只有一个数据参数x
饼图适合展示各部分占总体的比例,条形图适合比较各部分的大小

饼图阴影、分裂等属性设置
  labels参数设置每一块的标签;
  labeldistance参数设置标签距离圆心的距离(比例值)
  autopct参数设置比例值小数保留位(%.3f%%);
  pctdistance参数设置比例值文字距离圆心的距离
  explode参数设置每一块顶点距圆心的长度(比例值,列表);
  colors参数设置每一块的颜色(列表);
  shadow参数为布尔值,设置是否绘制阴影
  startangle参数设置饼图起始角度

五、散点图

scatter(x,y)
  散点图:因变量随自变量而变化的大致趋势
  散点图需要两个参数x,y,但此时x不是表示x轴的刻度,而是每个点的横坐标!
  plt.scatter(x,y,marker='d',c="rbgy") 设置不同的散点颜色

六、简单了解机器学习实现线性回归

  • 导入sklearn,建立线性回归算法模型对象
      from sklearn.linear_model import LinearRegression
      linear = LinearRegression()
      样本集:用于对机器学习算法模型对象进行训练。样本集通常为一个DataFrame。
      特征数据:特征数据的变化会影响目标数据的变化。必须为多列。
      目标数据:结果。通常为一列。
  • 使用样本数据对模型进行训练
      linear.fit(near_citys_dist.reshape(-1,1),near_citys_max_temp)
  • 对模型进行精准度的评分
      linear.score(near_citys_dist.reshape(-1,1),near_citys_max_temp)
  • 使用模型进行预测
      x = np.array([65,44,12,99]).reshape(-1,1)
      linear.predict(x)
  • 绘制回归曲线
      x = np.linspace(0,100,num=100)
      y = linear.predict(x.reshape(-1,1))
      plt.scatter(x,y)

线性回归详细案例和素材详见github:
https://github.com/wangjifei121/Data_analysis_case3

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,366评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,521评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,689评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,925评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,942评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,727评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,447评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,349评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,820评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,990评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,127评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,812评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,471评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,017评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,142评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,388评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,066评论 2 355

推荐阅读更多精彩内容

  • 一、概述 深度学习的一个重要手段是训练数据和训练过程的可视化,因此,我们关于深度学习的系列介绍文章就从Matplo...
    aoqingy阅读 6,160评论 0 24
  • 目录 简单的图表设置 直方图 垂直条状图 水平条状图 多序列条状图 多序列堆积条状图 其他条形图 饼状图 箱线图 ...
    鬼宇书生阅读 6,074评论 3 5
  • Matplotlib 入门知识 matplotlib在Python中应用最多的2D图像的绘图工具包,使用matpl...
    文婷_5250阅读 1,540评论 0 1
  • 事情的发展不是很理想。 我并没有想到时间会过得这么快。当一个人觉得时间飞逝的时候,要么是庸碌无为,要么是呕心沥血。...
    流噪阅读 397评论 2 2
  • 人生第一次跑5公里……竟然还活着,不可思议,哈哈哈!
    滑稽的笑阅读 151评论 0 0