matplotlib各图形绘制

时间:2023-01-29 15:24:54

2D图形

import numpy as np
import pandas as pd
from pandas import Series,DataFrame
import matplotlib.pyplot as plt

散点图

【散点图需要两个参数x,y,但此时x不是表示x轴的刻度,而是每个点的横坐标!】

scatter()

通过散点图 可以研究 两个特征之间的关系

x = np.random.normal(loc=0,scale=5,size=1000)
y = np.random.normal(loc=0,scale=5,size=1000)
# plt.plot() # plot绘制的是折线图
plt.scatter(x,y) # plt.scatter()绘制的是散点图

matplotlib各图形绘制

plt.scatter(x,y,s=80,c='red')  # s size指的是散点的大小 c color指的是散点的颜色

matplotlib各图形绘制

size = np.random.randint(0,100,1000)
color = np.random.random(size=(1000,3))
# 给这1000个点 随机产生 不同的 大小和颜色
plt.scatter(x,y,s=size,c=color,alpha=0.6,marker='*')
plt.axis('off')

matplotlib各图形绘制

饼图

【饼图也只有一个参数x!】

pie() 饼图适合展示各部分占总体的比例,条形图适合比较各部分的大小

普通各部分占满饼图

data = np.array([30,50,24,80])  # 如果各个值 加起来 比1大 就会计算各个部分的百分比
plt.pie(data)
plt.axis('equal')

matplotlib各图形绘制

普通未占满饼图

data = np.array([0.2,0.4,0.2,0.1])  # 如果比1 小 直接把各个部分的值 作为 百分比
plt.pie(data)

matplotlib各图形绘制

饼图阴影、分裂等属性设置

  • labels参数设置每一块的标签;
  • labeldistance参数设置标签距离圆心的距离(比例值,只能设置一个浮点小数)
  • autopct参数设置比例值的显示格式(%.nf%%);
  • pctdistance参数设置比例值文字距离圆心的距离
  • explode参数设置每一块顶点距圆形的长度(比例值,列表);
  • colors参数设置每一块的颜色(列表);
  • shadow参数为布尔值,设置是否绘制阴影
  • startangle参数设置饼图起始角度
data = np.array([30,50,24,80])
_ = plt.pie(data
,labels=['china','india','brazil','russa'] # 各个部分的名字(标签)
,labeldistance=1.1 # 标签到中心点的距离
,autopct='%.1f%%' # 控制比例的值的显示
,pctdistance=0.5 # 控制百分比的值的显示位置
,explode=[0.1,0,0,0] # 每一份扇形 到中心点的距离
,colors = ['red','green','blue','yellow']
,shadow=True
,startangle=90 # 绘制图形时候 开始的角度
)

matplotlib各图形绘制

直方图

【直方图的参数只有一个x!!!不像条形图需要传入x,y】

hist()的参数

  • bins
    • 可以是一个bin数量的整数值,也可以是表示bin的一个序列。默认值为10
  • density (normed)
    • 如果值为True,直方图的值将进行归一化处理,形成概率密度,默认值为False
  • color
    • 指定直方图颜色。可以是单一色值或颜色序列。如果指定了多个数据集合,颜色序列将会设置为相同的顺序。如果未指定,将会使用一个默认的线条颜色
  • orientation
    • 通过设置orientation为horizontal创建水平直方图。默认值为vertical
data = np.random.randint(0,100,size=100)
df = DataFrame(data)
df.plot(kind='hist')

matplotlib各图形绘制

# bins指的是要把整个范围 分成多少份 默认值是10
# density把值从频率变成概率
# orientation用来控制条形图的方向 horizontal表示水平
plt.hist(data,bins=5,density=True,color='r',orientation='horizontal')

matplotlib各图形绘制

条形图

【条形图有两个参数x,y】

  • width 水平方向的长度
  • height 竖直方向的长度

bar()、barh()

data = np.array([1,4,7,2,8,5])
index = [1,2,3,4,5,6]
# x是索引, height是高度(值)
plt.bar(x=index,height=data,width=0.5)

matplotlib各图形绘制

# y是各个样本的索引
# 各个样本的值的大小 用width来体现
plt.barh(y=index,height=0.5,width=data)

matplotlib各图形绘制

data = np.array([1,2,3,4,5,6])
index = [1,2,3,4,5,6]
plt.bar(x=index,height=data,width=0.5)

matplotlib各图形绘制

plt.axes(polar=True)
data = np.array([1,2,3,4,5,6])
index = [1,2,3,4,5,7]
plt.bar(x=index,height=data,width=0.5)

matplotlib各图形绘制

index = np.arange(0,2*np.pi,np.pi/4)
data = [1,2,3,4,5,6,7,8]
plt.axes(polar=True)
plt.bar(x=index,height=data,width=0.5)

matplotlib各图形绘制

图形内的文字、注释、箭头

控制文字属性的方法:

matplotlib各图形绘制

所有的方法会返回一个matplotlib.text.Text对象

图形内的文字

text()

# 以下所有这些 都是文字对象 都可以设置 color rotation fontsize fontproperties ...
axes = plt.subplot()
plt.title('title') # 画布标题 实际上 内部调用的 就是axes坐标系的标题
# plt.suptitle('suptitle',color='r',rotation=90,fontsize=10)
plt.figtext(0.2,0.8,'fig_text') # 画布内的文本 x和y参数用来指定位置(0-1之间 不过也可以超出这个范围) s就是文字的内容
axes.set_title('axes_title')
axes.text(0.5,0.5,'axes_text') # x, y, s
axes.text(0.8,0.2,'axes_text')

matplotlib各图形绘制

注释

annotate()

  • xy参数设置箭头指示的位置
  • xytext参数设置注释文字的位置
  • arrowprops参数以字典的形式设置箭头的样式
    • width参数设置箭头长方形部分的宽度
    • headlength参数设置箭头尖端的长度,
    • headwidth参数设置箭头尖端底部的宽度
    • shrink参数设置箭头顶点、尾部与指示点、注释文字的距离(比例值),可以理解为控制箭头的长度
data = np.random.randint(0,10,size=10)
index = np.arange(0,10,1)
data
index
plt.plot(index,data)
# s 注释的内容
# xy 注释的位置 以列表或者元组的形式 设置x和y的座标(注意 不是0-1的那种值)
# plt.annotate('hehe',[5,2])
# 如果想添加 箭头 可以用 arrowprops来设置箭头的样式
# plt.annotate(s='hehe',xy=[5,2],xytext=[0,8],arrowprops={'width':2}) # xytext用来设置文本的位置 xy是箭头指向的位置
# plt.annotate(s='hehe',xy=[5,2],xytext=[0,8],arrowprops={'width':2},color='r',rotation=90) # annotation注释 也是文本对象 也可以设置文本属性
plt.annotate(s='hehe',xy=[5,2],xytext=[0,8],arrowprops={'width':20,'headlength':25,'headwidth':25}) # 设置箭头的样式 箭头身体的宽度width 箭头头部的宽度headwidth 长度headlength

matplotlib各图形绘制

plt.plot(index,data)
plt.annotate(s='hehe',xy=[5,2],xytext=[0,8],arrowprops={'arrowstyle':'fancy'})

matplotlib各图形绘制

matplotlib各图形绘制

3D图

曲面图

导包

  • from mpl_toolkits.mplot3d.axes3d import Axes3D

使用mershgrid函数切割x,y轴

  • X,Y = np.meshgrid(x, y)

创建3d坐标系

  • axes = plt.subplot(projection='3d')

绘制3d图形

  • p = axes.plot_surface(X,Y,Z,color='red',cmap='summer') # 返回图形对象

添加colorbar

  • plt.colorbar(p,shrink=0.5) # 传入图形对象
from mpl_toolkits.mplot3d.axes3d import Axes3D
axes = plt.subplot(projection='3d')

matplotlib各图形绘制

# 取遍 x y 平面上的整数点
x = np.linspace(0,5,6) # 取遍了x轴线上的整数点
x
y = np.linspace(0,5,6)
y
X,Y = np.meshgrid(x,y)
def fn(x,y):
return np.sin(y)-np.cos(x)
Z = fn(X,Y)
x = np.linspace(-6,6,100)
y = np.linspace(-6,6,100)
X,Y = np.meshgrid(x,y)
# plot_surface绘制平面
plt.figure(figsize=(12,8))
axes = plt.subplot(projection='3d')
# axes.plot_surface(X, Y, Z,color='red')
p = axes.plot_surface(X, Y, Z,cmap='rainbow')
plt.colorbar(p,shrink=0.5)

matplotlib各图形绘制

玫瑰图/极坐标条形图

matplotlib各图形绘制

创建极坐标,设置polar属性

plt.axes(polar = True)

绘制极坐标条形图

index = np.arange(0,2*np.pi,2*np.pi/8)
plt.bar(x=index ,height = [1,2,3,4,5,6,7,8] ,width = 2*np.pi/8)

matplotlib各图形绘制的更多相关文章

  1. 数据分析——Matplotlib图形绘制

    创建画布或子图 函数名称 函数作用 plt.figure 创建一个空白画布,可以指定画布大小,像素. figure.add_subplot 创建并选中子图,可以指定子图的行数,列数,与选中图片编号. ...

  2. Matplotlib 图形绘制

    章节 Matplotlib 安装 Matplotlib 入门 Matplotlib 基本概念 Matplotlib 图形绘制 Matplotlib 多个图形 Matplotlib 其他类型图形 Mat ...

  3. Matplotlib基本图形之条形图2

    Matplotlib基本图形之条形图2 1.绘制多条条形图 示例代码: import time import numpy as np import matplotlib.pyplot as plt b ...

  4. Matplotlib基本图形之条形图

    Matplotlib基本图形之条形图 条形图特点: 以长方形的长度为变量的统计图表用来比较多个数据分类的数据大小通常用于较小的数据集分析例如不同季度的销量,不同国家的人口 示例代码: import o ...

  5. Matplotlib基本图形之折线图

    Matplotlib基本图形之折线图折线图特点 折线图是用折线将各数据连起来组成的图形常用来观察数据随时间变化的趋势例如:股票价格,温度变化,等等 示例代码: import os import tim ...

  6. 十分钟快速学会Matplotlib基本图形操作

    在学习Python的各种工具包的时候,看网上的各种教程总是感觉各种方法很多很杂,参数的种类和个数也十分的多,理解起来需要花费不少的时间. 所以我在这里通过几个例子,对方法和每个参数都进行详细的解释,这 ...

  7. 用matplotlib和pandas绘制股票MACD指标图,并验证化交易策略

    我的新书<基于股票大数据分析的Python入门实战>于近日上架,在这篇博文向大家介绍我的新书:<基于股票大数据分析的Python入门实战>里,介绍了这本书的内容.这里将摘录出部 ...

  8. 【Windows编程】系列第五篇:GDI图形绘制

    上两篇我们学习了文本字符输出以及Unicode编写程序,知道如何用常见Win32输出文本字符串,这一篇我们来学习Windows编程中另一个非常重要的部分GDI图形绘图.Windows的GDI函数包含数 ...

  9. 13个JavaScript图表(JS图表)图形绘制插件【转】

    现在网络上又有越来越多的免费的(JS 图表)JavaScript图表图形绘制插件.我之前给一家网站做过复杂的图形,我们用的是 highchart.在那段时间,没有很多可供选择的插件.但现在不同了,很容 ...

随机推荐

  1. 用html5 canvas和JS写个数独游戏

    为啥要写这个游戏? 因为我儿子二年级数字下册最后一章讲到了数独.他想玩儿. 因为我也想玩有提示功能的数独. 因为我也正想决定要把HTML5和JS搞搞熟.熟悉一个编程平台,最好的办法,就是了解其原理与思 ...

  2. Android循环滑动寻找元素&comma;直接代码

    #coding=utf-8from appium import webdriverimport time,unittestclass Android_test(unittest.TestCase): ...

  3. ui&sol;ue设计师应该了解的原型设计软件

    前段实践整理过一些原型设计用的软件,这里分享一下,喜欢对更多的PM战线的童鞋有所裨益.(因为交互原型工具Axure ui设计师都很常用了,文中就不专门介绍了) 首先分下类: •1.交互原型(产品能做什 ...

  4. nodejs简单数据迁移demo

    近期做数据迁移,采用nodejs框架,数据库为mysql.作为一枚菜鸟,在编码过程中,遇到众多奇葩问题,感谢民少给予的支持. 由于旧数据库中的数据,在之前设计中存在众多不合理的情况,因此在数据迁移中, ...

  5. &commat;Value取不到值的原因(引用application&period;properties中自定义的值)

    在spring mvc架构中,如果希望在程序中直接使用properties中定义的配置值,通常使用一下方式来获取: @Value("${tag}") private String ...

  6. LeetCode——4&period; Median of Two Sorted Arrays

    一.题目链接:https://leetcode.com/problems/median-of-two-sorted-arrays 二.题目大意: 给定两个排序过的数组,求出两个数组的中位数,要求时间复 ...

  7. mysql 删除表 外键出错

    MySQL库中有俩表,table1和table2,相互关联,在删除表的时候出错: Cannot delete or update a parent row: a foreign key constra ...

  8. 【angular5项目积累总结】文件下载

    download() { const token = localStorage.getItem('token'); let headers: HttpHeaders = new HttpHeaders ...

  9. 9&period;GIt删除操作

    在Git中,删除也是一个修改操作,我们实战一下,先添加一个新文件test.txt到Git并且提交: 创建一个文件test.txt,写入一句话`this is new file !`. $ echo ' ...

  10. HDU 6038 Function(思维&plus;寻找循环节)

    http://acm.hdu.edu.cn/showproblem.php?pid=6038 题意:给出两个序列,一个是0~n-1的排列a,另一个是0~m-1的排列b,现在求满足的f的个数. 思路: ...