1.条形图

import matplotlib.pyplot as plt
plt.style.use('ggplot') # 使用ggplot样式来模拟ggplot2风格的图形,ggplot2是一个常用的R语言绘图包
customers = ['ABC','DEF','GHI','JKL','MNO']
customers_index = range(len(customers))
sale_amounts = [127,90,201,111,232]
fig = plt.figure() # 创建基础图
ax1 = fig.add_subplot(1,1,1) # 向基础图中添加一个子图 1,1,1表示穿件1行1列的子图,并使用第一个也是唯一的一个子图
ax1.bar(customers_index,sale_amounts,align='center',color='darkblue') # 创建条形图,customers_index设置天性左侧在x轴上的坐标,sale_amounts设置条形图的高度,align 设置条形图与标签中间对齐,color设置条形图的衍射 plt.xlabel('用户姓名', fontproperties="SimHei") # 设置X轴的标题
plt.ylabel('销售数量', fontproperties="SimHei") # 设置Y轴的标题
plt.title('销售额/客户', fontproperties="SimHei") # 设置title的标题 plt.savefig('bar_plot.png',dpi=400,bbox_inches='tight') # 讲统计图保存在当前文件夹中,文件名为bar_plot.png,dpi=400设置图形分辨率,【每英寸(1英寸=2.54厘米)的点数】,bbox_inches='tight' 表示在保存图形时,将图形四周的空白部分去掉
plt.show() # 在一个新窗口中显示统计图,

2.直方图

# @author: erlang
import numpy as np
import matplotlib.pyplot as plt
plt.style.use('ggplot')
mu1,mu2,sigma = 100,130,15
x1 = mu1 + sigma * np.random.randn(10000) # 生成两个正太分布变量x1和x2,x1的均值是100,x2的均值是130,
x2 = mu2 + sigma * np.random.randn(10000)
fig = plt.figure()
ax1 = fig.add_subplot(1,1,1)
n, bins, patches = ax1.hist(x1,bins=50,normed=False,color='darkgreen') #创建两个柱形图或称频率分布图,bins= 50表示每个变量的值应该被分成50份
n, bins, patches = ax1.hist(x2,bins=50,normed=False,color='orange',alpha=0.2) # normed= False表示直方图显示是平率分布,而不是概率密度。alpha=0.2 表示第二个直方图应该是透明的
ax1.xaxis.set_ticks_position('bottom')
ax1.yaxis.set_ticks_position('left')
plt.xlabel('Bins')
plt.ylabel('Number中值数',fontproperties="SimHei")
fig.suptitle('直方图',fontproperties="SimHei")
ax1.set_title('两个频率分布',fontproperties="SimHei")
plt.savefig('histogram.png',dpi=400,bbox_inches='tight')
plt.show()

3.折线图

# @author: erlang
from numpy.random import randn
import matplotlib.pyplot as plt
import matplotlib
# 保证图中的中文可以正常显示
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
matplotlib.rcParams['axes.unicode_minus'] = False plt.style.use('ggplot')
plot_data1 = randn(50).cumsum()
plot_data2 = randn(50).cumsum()
plot_data3 = randn(50).cumsum()
plot_data4 = randn(50).cumsum() fig = plt.figure()
ax1 = fig.add_subplot(1,1,1) # 穿件4条折线,每条折线都可以通过选项进行设置。使用不同的数据点类型、颜色和现行,label参数盘整折线在图列中可以正确标记
ax1.plot(plot_data1,marker='o',color=u'blue',linestyle='-',label='Blue solid(蓝色固体)',)
ax1.plot(plot_data2,marker='+',color=u'red',linestyle='--',label='Red Dashed(红色虚线)',)
ax1.plot(plot_data3,marker='*',color=u'green',linestyle='-.',label='Green Dash Dot(绿色冲点)',)
ax1.plot(plot_data4,marker='s',color=u'orange',linestyle=':',label='Orange Dotted(橙色的虚线)',) ax1.xaxis.set_ticks_position('bottom')
ax1.yaxis.set_ticks_position('left')
ax1.set_title('Line Plots:Markers,colors,and Linestyles(情节:标记、颜色和线型)')
plt.xlabel('Draw(画)') # x轴标题
plt.ylabel('Random Number(随机数)')# Y轴标题
plt.legend(loc='best') # 指示matplotlib根据图中空白部分将图列放在最合适的位置
plt.savefig('line_plot.png',dpi=400,bbox_inches='tight')
plt.show()

4散点图

# @author: erlang
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
# 保证图中的中文可以正常显示
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
matplotlib.rcParams['axes.unicode_minus'] = False plt.style.use('ggplot')
x = np.arange(start=1.,stop=15.,step=1.) y_linear = x + 5. * np.random.randn(14)
y_quadratic = x** 2 + 10. * np.random.randn(14) # 通过随机数是数据与一条直线和一条二次曲线悄悄偏离 # 使用numpy的polyfit函数通过函数两组数据点(x,y_linear)和(x,y_quadratic)拟合出一条直线和一条二次曲线
# 再使用polyid函数根据直线和二次曲线的参数与生成一个线性方程和二次方程
fn_linear = np.poly1d(np.polyfit(x,y_linear,deg=1))
fn_quadratic = np.poly1d(np.polyfit(x,y_quadratic,deg=2)) # fig = plt.figure()
ax1 = fig.add_subplot(1,1,1) # 代码创建带有两个回归曲线的散点图,'bo'表示(x,_y_linear)点事是蓝色圆圈,'go'表示(,x,y_quadratic)点是绿色圆圈,
# 同样'b-'表示(x,y_linear)点之间的显示一条蓝色实线 'g-'表示(,x,y_quadratic)点是绿色实线, 通过linewidth可以设置线的高度
ax1.plot(x,y_linear,'bo',x,y_quadratic,'go',x,fn_linear(x),'b-',x,fn_quadratic(x),'g-',linewidth = 2.)
ax1.xaxis.set_ticks_position('bottom')
ax1.yaxis.set_ticks_position('left')
ax1.set_title('Scatter ploys Regression Lines(散射伎俩回归直线)',)
plt.xlabel('x')
plt.ylabel('f(x)') # 设置了x轴和Y轴的范围。这两条曲线使用min和max函数基于实际数据设置坐标轴范围,你也可以使用具体的数值设置范围,列入xlim(0,20)和ylom(0,200)
# 如果你没有设置坐标范围,那么matplotlib会替你自己设置,
plt.xlim(min(x)-1,max(x)+1)
plt.ylim(min(y_quadratic)-10.,max(y_quadratic)+10.)
plt.savefig('scatter_plot.png',dpi=400,bbox_inches='tight')
plt.show()

matplotlib.pyplot 让数据可视化的更多相关文章

  1. Python调用matplotlib实现交互式数据可视化图表案例

    交互式的数据可视化图表是 New IT 新技术的一个应用方向,在过去,用户要在网页上查看数据,基本的实现方式就是在页面上显示一个表格出来,的而且确,用表格的方式来展示数据,显示的数据量会比较大,但是, ...

  2. 第四十四篇 入门机器学习——matplotlib基础——实现数据可视化

    No.1. 绘制一条正弦曲线 No.2. 在一张图中绘制多条曲线 No.3. 可以为曲线指定颜色.线条样式 No.4. 可以指定横纵坐标轴的范围 也可以使用: No.6. 可以为每条曲线添加图示 No ...

  3. 数据可视化之Matplotlib的使用

    1.什么是数据可视化 数据可视化在量化分析当中是一个非常关键的辅助工具,往往我们需要通过可视化技术,对我们的数据进行更清晰的展示,这样也能帮助我们理解交易.理解数据.通过数据的可视化也可以更快速的发现 ...

  4. Python数据可视化基础讲解

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:爱数据学习社 首先,要知道我们用哪些库来画图? matplotlib ...

  5. Python数据可视化利器Matplotlib,绘图入门篇,Pyplot介绍

    Pyplot matplotlib.pyplot是一个命令型函数集合,它可以让我们像使用MATLAB一样使用matplotlib.pyplot中的每一个函数都会对画布图像作出相应的改变,如创建画布.在 ...

  6. python数据可视化——matplotlib 用户手册入门:pyplot 画图

    参考matplotlib官方指南: https://matplotlib.org/tutorials/introductory/pyplot.html#sphx-glr-tutorials-intro ...

  7. 【Data Visual】一文搞懂matplotlib数据可视化

    一文搞懂matplotlib数据可视化 作者:白宁超 2017年7月19日09:09:07 摘要:数据可视化主要旨在借助于图形化手段,清晰有效地传达与沟通信息.但是,这并不就意味着数据可视化就一定因为 ...

  8. matplotlib实现数据可视化

    一篇matplotlib库的学习博文.matplotlib对于数据可视化非常重要,它完全封装了MatLab的所有API,在python的环境下和Python的语法一起使用更是相得益彰. 一.库的安装和 ...

  9. Python数据可视化——使用Matplotlib创建散点图

    Python数据可视化——使用Matplotlib创建散点图 2017-12-27 作者:淡水化合物 Matplotlib简述: Matplotlib是一个用于创建出高质量图表的桌面绘图包(主要是2D ...

随机推荐

  1. Linux 文件夹含义(转)

    1./bin :获得最小的系统可操作性所需要的命令 2./boot :内核和加载内核所需的文件 3./dev :终端.磁盘.调制解调器等的设备项 4./etc :关键的启动文件和配置文件 5./hom ...

  2. JS-Zepto.js中文链接

    附上zepto.js的中文链接:http://www.css88.com/doc/zeptojs_api/ 小伙伴再也不用担心“这特么到底啥意思!”

  3. Kafka+SpringMVC+Maven应用示例

    本文借助主流SpringMVC框架向大家介绍如何在具体应用中简单快捷的使用kafka.kafka.maven以及SpringMVC在现在的企业级应用中都占据着非常重要的地位,所以本文将三者结合起来也可 ...

  4. 常用 Git 操作

    最新博客链接:https://feiffy.cc/Git 日常用到的GIT的一些操作,记下来,以备参考. 删除文件 git rm filename git commit -m "remove ...

  5. 160329(二)、web.xml配置详解

    1.启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点. 2.紧急着,容创建一个Servl ...

  6. 用angular引入复杂的json文件

    我们在写网页时是有很多的重复代码和重复样式的,我们也不能一口气敲下来,这样就成为了体力劳动了. 所以我在遇到这种情况的时候大部分是用angular来获取json的,而用angular来让json数据库 ...

  7. Maven的安装配置及初次创建项目与java单元测试工具JUnit

    Maven  安装     1.把maven安装包解压到某个位置     2.配置M2_HOME环境变量指向这个位置 3.在path环境变量中添加;%M2_HOME%\bin 配置镜像 国内的阿里云镜 ...

  8. 【Python算法】哈希存储、哈希表、散列表原理

    哈希表的定义: 哈希存储的基本思想是以关键字Key为自变量,通过一定的函数关系(散列函数或哈希函数),计算出对应的函数值(哈希地址),以这个值作为数据元素的地址,并将数据元素存入到相应地址的存储单元中 ...

  9. 剖析Docker文件系统:Aufs与Devicemapper

    http://www.infoq.com/cn/articles/analysis-of-docker-file-system-aufs-and-devicemapper Docker镜像 典型的Li ...

  10. oracle 归档空间满的解决办法

    问题现象: 通过命令提示符登陆数据库,一般提示“ora-03113:通信通道的文件结尾”错误,查看trace日志,可以看到详细信息.部分摘录如下(橙色部分给出了建议方案): Errors in fil ...