matplotlib.pyplot 让数据可视化
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 让数据可视化的更多相关文章
- Python调用matplotlib实现交互式数据可视化图表案例
交互式的数据可视化图表是 New IT 新技术的一个应用方向,在过去,用户要在网页上查看数据,基本的实现方式就是在页面上显示一个表格出来,的而且确,用表格的方式来展示数据,显示的数据量会比较大,但是, ...
- 第四十四篇 入门机器学习——matplotlib基础——实现数据可视化
No.1. 绘制一条正弦曲线 No.2. 在一张图中绘制多条曲线 No.3. 可以为曲线指定颜色.线条样式 No.4. 可以指定横纵坐标轴的范围 也可以使用: No.6. 可以为每条曲线添加图示 No ...
- 数据可视化之Matplotlib的使用
1.什么是数据可视化 数据可视化在量化分析当中是一个非常关键的辅助工具,往往我们需要通过可视化技术,对我们的数据进行更清晰的展示,这样也能帮助我们理解交易.理解数据.通过数据的可视化也可以更快速的发现 ...
- Python数据可视化基础讲解
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:爱数据学习社 首先,要知道我们用哪些库来画图? matplotlib ...
- Python数据可视化利器Matplotlib,绘图入门篇,Pyplot介绍
Pyplot matplotlib.pyplot是一个命令型函数集合,它可以让我们像使用MATLAB一样使用matplotlib.pyplot中的每一个函数都会对画布图像作出相应的改变,如创建画布.在 ...
- python数据可视化——matplotlib 用户手册入门:pyplot 画图
参考matplotlib官方指南: https://matplotlib.org/tutorials/introductory/pyplot.html#sphx-glr-tutorials-intro ...
- 【Data Visual】一文搞懂matplotlib数据可视化
一文搞懂matplotlib数据可视化 作者:白宁超 2017年7月19日09:09:07 摘要:数据可视化主要旨在借助于图形化手段,清晰有效地传达与沟通信息.但是,这并不就意味着数据可视化就一定因为 ...
- matplotlib实现数据可视化
一篇matplotlib库的学习博文.matplotlib对于数据可视化非常重要,它完全封装了MatLab的所有API,在python的环境下和Python的语法一起使用更是相得益彰. 一.库的安装和 ...
- Python数据可视化——使用Matplotlib创建散点图
Python数据可视化——使用Matplotlib创建散点图 2017-12-27 作者:淡水化合物 Matplotlib简述: Matplotlib是一个用于创建出高质量图表的桌面绘图包(主要是2D ...
随机推荐
- 设置两个WdatePicker的开始时间小于结束时间,结束时间大于开始时间
contract_start_date_id为开始时间ID contract_end_date_id为结束时间ID $("#contract_start_date_id").bin ...
- jquery合并表格中相同文本的相邻单元格
<!DOCTYPE HTML> <html> <head> <title>Example</title> <meta char ...
- hdu 3599(最短路+最大流)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3599 思路:首先spfa求一下最短路,然后对于满足最短路上的边(dist[v]==dist[u]+w) ...
- 数据驱动ddt+excel数据读取
我们可以将测试数据用excel存储,再用ddt去传入,不过我们需要安装对应的库,因为python是无法操作excel的 1.安装第三方库xlrd 2.创建一个excel表格,将需要测试的数据保存 3. ...
- SQL SERVER 服务启动失败
好久没用SQL SERVER了.今天启动SQL,发现服务启动失败.报错例如以下:--错误发生 1069-(因为登录失败而无法启动服务.) .百度一下,解决方式例如以下: 请按下列步骤操作: 1.右键单 ...
- Android 安卓真机调试 出现Installation error: INSTALL_FAILED_UPDATE_INCOMPATIBLE....
[2017-03-24 13:30:04 - DataVDemo06] Installing DataVDemo06.apk...[2017-03-24 13:30:08 - DataVDemo06] ...
- AndroidStudio gradle配置
自2013年5月16日,在I/O大会上,谷歌推出新的Android开发环境——Android Studio,并对开发者控制台进行了改进,增加了五个新的功能, google就已经彻底放弃eclipse ...
- iOS 8出色的跨应用通信效果:解读Action扩展
本文转载至 http://mobile.51cto.com/iphone-464809.htm 用程序扩展最初于WWDC 2014大会上正式亮相,这是一种将iOS应用程序功能扩展至系统其它组成部分的途 ...
- SharePoint 常用操作杂谈
前言 本文完全原创,转载请说明出处,希望对大家有用. 本篇博客是个人总结,一方面以便日后查看,另一方面希望能为其他人提供一些便利. 阅读目录 SharePoint 2010 UserProfile 添 ...
- distinct用group by优化
当数据量非常大,在同一个query中计算多个不相关列的distinct时,往往很容易出现数据倾斜现象,导致运行半天都不能得到结果. 比如以下的SQL语句(a, b, c没有相关性): select d ...