python matplotlib数据可视化_Python - matplotlib 数据可视化

2  图和子图的建立

2.1  导入matplotlib

import matplotlib.pyplot as plt

import numpy as np

2.2  建立图和子图方式一

plt.plot( )会在最近的一个图上进行绘制

from numpy.random import randn

fig = plt.figure(figsize = (8,4)) #设置图的大小

ax1 = fig.add_subplot(2,2,1)

ax2 = fig.add_subplot(2,2,2)

ax3 = fig.add_subplot(2,1,2)

ax3.plot(randn(50).cumsum(),'k--') # plt.plot(randn(50).cumsum(),'k--')等效

ax1.hist(randn(100),bins = 10, color = 'b', alpha = 0.3) #bins 分成多少间隔 alpha 透明度

ax2.scatter(np.arange(30),np.arange(30) + 3*randn(30))

plt.show()

2.3 建立子图方式二

from numpy.random import randn

fig, axes = plt.subplots(2,2) #以数组方式访问

t = np.arange(0., 5., 0.2)

axes[0,0].plot(t, t, 'r-o', t, t**2, 'bs', t, t**3, 'g^') #同时绘制多条曲线

axes[1,1].plot(randn(40).cumsum(),'b--')

plt.show()

2.4 主题设置

使用style.use()函数

df_iris = pd.read_csv('../input/iris.csv')

plt.style.use('ggplot') #'fivethirtyeight','ggplot','dark_background','bmh'

df_iris.hist('sepal length')

plt.show()

3  颜色、标记、线型、刻度、标签和图例

from numpy.random import randn

fig = plt.figure()

ax1 = fig.add_subplot(1,1,1)

ax1.plot(randn(30).cumsum(),color = 'b',linestyle = '--',marker = 'o',label = '$cumsum$') # 线型 可以直接'k--o'

ax1.set_xlim(10,25)

ax1.set_title('My first plot')

ax1.set_xlabel('Stages')

plt.legend(loc = 'best') #把图放在不碍事的地方 xticks([])设置刻度

plt.show()

等价于下面的代码:

from numpy.random import randn

fig = plt.figure()

ax1 = fig.add_subplot(1,1,1)

ax1.plot(randn(30).cumsum(),color = 'b',linestyle = '--',marker = 'o',label = '$cumsum$') #图标可以使用latex内嵌公式

plt.xlim(10,25) #plt.axis([10,25,0,10])对x,y轴范围同时进行设置

plt.title('My first plot')

plt.xlabel('Stages')

plt.legend(loc = 'best')

plt.show()

4  pandas中的绘图函数

在pandas中,我们具有行标签,列标签以及分组信息。这也就是说,要制作一张完整的图表,原本需要一大堆的matplotlib代码,现在只需一两条简洁的语句就可以了。

pandas有很多能够利用DataFrame对象数据组织特点来创建标准图表的高级绘图方法。

4.1  线型图

from numpy.random import randn

fig, axes = plt.subplots(1,2)

s = pd.Series(randn(10).cumsum(),index = np.arange(0,100,10))

s.plot(ax = axes[0]) # ax参数选择子图

df = pd.DataFrame(randn(10,3).cumsum(0),columns = ['A','B','C'],index = np.arange(0,100,10))

df.plot(ax = axes[1])

plt.show()

4.2 柱状图

from numpy.random import rand

fig, axes = plt.subplots(1,2)

data = pd.Series(rand(16),index = list('abcdefghijklmnop'))

data.plot(kind = 'bar', ax = axes[0], color = 'b', alpha = 0.7) #kind选择图表类型 'bar' 垂直柱状图

data.plot(kind = 'barh', ax = axes[1], color = 'b', alpha = 0.7) # 'barh' 水平柱状图

plt.show()

from numpy.random import rand

fig, axes = plt.subplots(1,2)

data = pd.DataFrame(rand(6,4),

index = ['one','two','three','four','five','six'],

columns = pd.Index(['A','B','C','D'], name = 'Genus'))

data.plot(kind = 'bar', ax = axes[0], alpha = 0.5)

data.plot(kind = 'bar', ax = axes[1], stacked = True, alpha = 0.5)

plt.show()

此外,柱状图有一个非常不错的用法,利用value_counts( )图形化显示Series中各值的出现概率,比如s.value_counts( ).plot(kind = 'bar')。

4.3 直方图和密度图

from numpy.random import randn

fig, axes = plt.subplots(1,2)

data = pd.Series(randn(100))

data.hist(ax = axes[0], bins = 50) #直方图

data.plot(kind = 'kde', ax = axes[1]) #密度图

plt.show()

其实可以一次性制作多个直方图,layout参数的意思是将两个图分成两行一列,如果没有这个参数,默认会将全部的图放在同一行。

df_iris = pd.read_csv('../input/iris.csv')

columns = ['sepal length','sepal width','petal length','petal width']

df_iris.hist(column=columns, layout=(2,2))

plt.show()

4.4 箱型图

箱型图是基于五数概括法(最小值,第一个四分位数,第一个四分位数(中位数),第三个四分位数,最大值)的数据的一个图形汇总,还需要用到四分位数间距IQR = 第三个四分位数 - 第一个四分位数。

df_iris = pd.read_csv('../input/iris.csv') #['sepal length','sepal width','petal length','petal width','class']

sample_size = df_iris[['petal width','class']]

sample_size.boxplot(by='class')

plt.xticks(rotation=90) #将X轴的坐标文字旋转90度,垂直显示

plt.show()

5  参考资料链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/490308.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学会怎样使用Jsp 内置标签、jstl标签库及自定义标签

学习jsp不得不学习jsp标签,一般来说,对于一个jsp开发者,可以理解为jsp页面中出现的java代码越少,对jsp的掌握就越好,而替换掉java代码的重要方式就是使用jsp标签。 jsp标签的分类:1)内置标签&am…

没有精准定位,万物还能实现互联吗?

来源:CSDN万物皆备,静待互联。这是一个万物都被赋予「生命」的时代,从人工流水线到工业自动化;从相互独立的设备到实时可监测相连的家居智能化;从汽车的复杂操作到自动驾驶的无人化......探索其真谛,实则科…

IO密集型 CPU密集型 多线程 多进程

IO密集型可以多线程。比如有一个任务,执行10万次循环,每次都打印hello world,然后休眠1秒,如果单线程,需要10万秒完成,如果10个线程,就只需要1万秒。 CPU密集型尽量少点线程。还是上面那个任务…

python selenium模拟键盘_SELENIUM自动化模拟键盘快捷键操作实现解析

这篇文章主要介绍了SELENIUM自动化模拟键盘快捷键操作实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下平常我们会用到很多快捷键,那么selenium如何来模拟快捷键操作呢。下面看看下常用快捷键…

log4net保存到数据库系列二:独立配置文件中配置log4net

园子里面有很多关于log4net保存到数据库的帖子,但是要动手操作还是比较不易,从头开始学习log4net数据库日志一、WebConfig中配置log4net 一、WebConfig中配置log4net二、独立配置文件中配置log4net三、代码中xml配置log4net四、完整代码配置log4net五、新增数据库字…

科学界5个终极难题,如果有一个被解决,人类文明将升级

来源:科学杂志 纵观人类发展历史,似乎每到了一定的阶段学术界就会有重大难题出现,例如人类的起源问题。为此有科学家总结出了人类历史上五大终极难题,如果有一个问题被解决的话,那么人类文明会实现质的飞跃。在人类文明…

php调用无参数函数可以传入参数

假设有一个无参数函数&#xff0c;那么调用这个函数时即使传入参数也不会报错 <?php function printv(){echo "hello"; }$i55; printv($i); ?>

判断三个数是否能构成三角形_三角形的面积

问题描述&#xff1a;输入三角形三边长a,b,c(保证能构成三角形)&#xff0c;输出三角形面积。输入&#xff1a;一行三个用一个空格隔开的实数a,b,c&#xff0c;表示三角形的三条边长。输出&#xff1a;输出三角形的面积&#xff0c;答案保留四位小数。样例输入3 4 5&#xff0c…

联合国2019数字经济报告

来源 &#xff1a; 数据观近日&#xff0c;联合国发布了《2019年数字经济报告》&#xff08;以下简称《报告》&#xff09;。报告指出&#xff0c;全球数字经济活动及其创造的财富增长迅速&#xff0c;且高度集中在美国和中国。《报告》称&#xff0c;美国和中国目前占有超过75…

CodeForces 615C

题意&#xff1a; 给定两个字符串s1,s2利用s1去构造s2,s1有无限个&#xff0c;可以翻转&#xff0c;你最少要用几个s1才能构造s2。输出每一次使用的s1的有效区间。 伪思路&#xff1a; 据说是暴力就能过的题目。然而自己就是暴力差&#xff0c;模拟差&#xff0c;DP差。。。…

priority_queue实现大顶堆和小顶堆

升序队列&#xff0c;小顶堆priority_queue <int,vector<int>,greater<int> > q; 降序队列&#xff0c;大顶堆priority_queue <int,vector<int>,less<int> >q; 优先队列支持的操作&#xff1a; top 访问队头元素empty 队列是否为空size …

大学python期末考试突击怎么办_Python突击-从入门到精通到项目实战

模块的概念安装pip 多个虚拟python环境测试驱动开发模式Python语言要素介绍2.详解Python数据类型列表和列表解析生成器表达式元组字符串字符串之中文处理字典集合3.函数和函数式编程函数参数和变长参数列表函数返回值.变量作用域函数的嵌套定义和闭包和装饰器介绍迭代器和生成器…

C语言的struct和C++的class的区别

C语言的struct不能有成员函数&#xff0c;没有静态成员&#xff0c;成员属性默认为public且不能修改&#xff08;所以没有实现封装&#xff09;&#xff0c;不能继承&#xff0c;不能直接初始化数据成员 所以C的class的继封装、继承、多态C语言的struct一个都没有

【人工智能】人类该如何看待人工智能的“诗与远方”?

来源&#xff1a;智能制造网【导读】如今&#xff0c;在继传统行业的应用“钱”景爆发之后&#xff0c;人工智能又开启了对“诗与远方”的追逐。9月8日&#xff0c;华为推出了一款全新的AI诗人——“乐府”&#xff0c;据悉其能够驾驭和写作唐诗宋词等多种形式的诗词&#xff0…

centos6.5安装配置zabbix3.0.3

1.首先要准备LAMP环境。 &#xff08;1&#xff09;安装phpZabbix 3.0对PHP的要求最低为5.4&#xff0c;而CentOS6默认为5.3.3&#xff0c;完全不满足要求&#xff0c;故需要利用第三方源&#xff0c;将PHP升级到5.4以上rpm -ivh http://repo.webtatic.com/yum/el6/latest.rpm …

数学建模灵敏度分析_数学建模中的灵敏度分析,到底在分析什么?

—2019/6/13—概念在数学建模中使用最优化方法时&#xff0c;我们常常会忽略对模型进行灵敏度分析&#xff0c;若缺少这一个步骤&#xff0c;会使得模型的可靠度受到质疑&#xff0c;那到底什么是灵敏度分析&#xff1f;参考百度&#xff1a;灵敏度分析&#xff0c;是研究与分析…

虚函数表存放在哪

一个类只能有一个虚函数表。在编译时&#xff0c;一个类的虚函数表就确定了&#xff0c;所以虚函数表在 .rodata &#xff08; Linux g &#xff09;

mysql数据对象

学习目标:了解掌握常见的几种数据库对象学会如何创建具体的数据对象mysql 常见的数据对象有哪些&#xff1a;DataBase/SchemaTableIndexView/Trigger/Function/Procedure多Database用途&#xff1a;业务的隔离资源的隔离表上的常用数据对象&#xff1a;索引约束视图&#xff0c…

赛迪研究院发布《2019量子计算发展白皮书》

来源&#xff1a;赛迪智库经国务院正式批准&#xff0c;由湖南省人民政府、工业和信息化部联合主办&#xff0c;中国电子信息产业发展研究院&#xff08;简称“赛迪研究院”&#xff09;、湖南省工业和信息化厅、长沙市人民政府承办的“2019世界计算机大会”在长沙召开。赛迪智…

安卓虚拟摄像头_iPhone 的「第四颗摄像头」位置,为什么给了激光雷达?

一个&#xff0c;两个&#xff0c;三个&#xff0c;四个…… 旗舰手机摄像头从 2016 年开始&#xff0c;以大约每年 1 个摄像头的数量在增长&#xff0c;有人调侃说麻将「八筒」将是所有智能手机摄像头的终极归宿。今年全新一代 iPhone 发布前&#xff0c;不少人推测 iPhone 12…