码迷,mamicode.com
首页 > 编程语言 > 详细

python -- 数据可视化(二)

时间:2019-07-22 13:56:59      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:img   位置   ges   shadow   nes   新窗口   字体   操作   bar   

python -- 数据可视化

 Matplotlib 绘图


 1、图形对象(图形窗口)

mp.figure(窗口名称, figsize=窗口大小, dpi=分辨率,
                   facecolor=颜色)
如果"窗口名称"是第一次出现,那么就创建一个新窗口,其标题栏显示该名称,如果"窗口名称"已经出现过,那么不再创建新窗口,而只是将与该名称相对应的窗口设置为当前窗口。所谓当前窗口,就是接受后续绘图操作的窗口。
mp.title(标题文本, fontsize=字体大小)
mp.xlabel(水平轴标签, fontsize=字体大小)
mp.ylabel(垂直轴标签, fontsize=字体大小)
mp.tick_params(..., labelsize=刻度标签字体大小, ...)
mp.grid(linestyle=网格线型)
mp.tight_layout() # 紧凑布局

demo:

from __future__ import unicode_literals
import numpy as np
import matplotlib.pyplot as mp
x = np.linspace(-np.pi, np.pi, 1000)            # -π — π,平分为1000等份
cos_y = np.cos(x) / 2
sin_y = np.sin(x)
mp.figure(Figure Object 1, figsize=(4, 3), dpi=120,
          facecolor=lightgray)                # figsize:窗口比例 ;dpi:像素 ;   facecolor:颜色
mp.title(Figure Object 1, fontsize=16)
mp.xlabel(x, fontsize=12)
mp.ylabel(y, fontsize=12)
mp.tick_params(labelsize=8)
mp.grid(linestyle=:)
mp.tight_layout()
mp.figure(Figure Object 2, figsize=(4, 3), dpi=120,
          facecolor=lightgray)
mp.title(Figure Object 2, fontsize=16)
mp.xlabel(x, fontsize=12)
mp.ylabel(y, fontsize=12)
mp.tick_params(labelsize=8)
mp.grid(linestyle=:)
mp.tight_layout()
mp.figure(Figure Object 1)        # 覆盖第一个窗口
mp.plot(x, cos_y, c=dodgerblue,
        label=r$y=\frac{1}{2}cos(x)$)
mp.legend()
mp.figure(Figure Object 2)
mp.plot(x, sin_y, c=orangered,
        label=r$y=sin(x)$)        # label为备注
mp.legend()
mp.show()

界面:

 技术图片    技术图片


 

2、条形图

mp.bar(水平坐标, 高度, 宽度[, 底坐标], color=颜色,
    alpha=透明度, label=图例标签)

demo:

# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import numpy as np
import matplotlib.pyplot as mp
apples = np.array([
    30, 25, 22, 36, 21, 29, 20, 24, 33, 19, 27, 15])
oranges = np.array([
    24, 33, 19, 27, 35, 20, 15, 27, 20, 32, 20, 22])
mp.figure(Bar, facecolor=lightgray)   # 绘图窗口
mp.title(Bar, fontsize=20)
mp.xlabel(Month, fontsize=14)
mp.ylabel(Price, fontsize=14)
mp.tick_params(labelsize=10)        # x、y label的字体大小
mp.grid(axis=y, linestyle=:)    # 网格线,y方向,点线类型
mp.ylim((0, 40))                    # y轴范围:0-40
x = np.arange(len(apples))
mp.bar(x, apples, 0.4, color=dodgerblue,
       label=Apple)                # 0.4:宽度 ;
mp.bar(x + 0.3, oranges, 0.4, color=orangered,
       label=Orange, alpha=0.75)    # x+0.3:水平坐标,在x基础上便宜0.3
mp.xticks(x + 0.1, [
    Jan, Feb, Mar, Apr, May, Jun,
    Jul, Aug, Sep, Oct, Nov, Dec])   # x+0.1:x轴偏移0.1 ;  mp.xticks(位置序列[, 标签序列])
mp.legend()
mp.show()

界面:

 技术图片


 

3、饼图

mp.pie(值, 间隙, 标签, 颜色, 格式,
    shadow=是否带阴影, startangel=起始角度)

demo:

# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import numpy as np
import matplotlib.pyplot as mp
values = [26, 17, 21, 29, 11]
spaces = [0.05, 0.01, 0.01, 0.01, 0.01]   # 偏移值,每个饼分图之间的距离
labels = [Python, JavaScript,
          C++, Java, PHP]
colors = [dodgerblue, orangered,
          limegreen, violet, gold]
mp.figure(Pie, facecolor=lightgray)
mp.title(Pie, fontsize=20)
mp.pie(values, spaces, labels, colors, %d%%,
       shadow=True, startangle=90)        # shadow:阴影 ;  startangle:角度
# 等轴比例
mp.axis(equal)
mp.show()

界面:

 技术图片


4、等高线图

mp.contourf(x, y, z, 阶数, cmap=颜色映射)
mp.contour(x, y, z, 阶数, linewidths=线宽)

demo:

from __future__ import unicode_literals
import numpy as np
import matplotlib.pyplot as mp
n = 1000
# 网格化
x, y = np.meshgrid(np.linspace(-3, 3, n),
                   np.linspace(-3, 3, n))
z = (1 - x / 2 + x ** 5 + y ** 3) * np.exp(
    -x ** 2 - y ** 2)
mp.figure(Contour, facecolor=lightgray)
mp.title(Contour, fontsize=20)
mp.xlabel(x, fontsize=14)
mp.ylabel(y, fontsize=14)
mp.tick_params(labelsize=10)
mp.grid(linestyle=:)
# 绘制等高线图
mp.contourf(x, y, z, 8, cmap=jet)
cntr = mp.contour(x, y, z, 8, colors=black,
                  linewidths=0.5)
# 为等高线图添加高度标签
mp.clabel(cntr, inline_spacing=1, fmt=%.1f,
          fontsize=10)
mp.show()

界面:

 技术图片


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

python -- 数据可视化(二)

标签:img   位置   ges   shadow   nes   新窗口   字体   操作   bar   

原文地址:https://www.cnblogs.com/Eric15/p/11224964.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!