python -- 数据可视化
Posted eric15
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python -- 数据可视化相关的知识,希望对你有一定的参考价值。
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=\\frac12cos(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 -- 数据可视化的主要内容,如果未能解决你的问题,请参考以下文章