Matplotlib 图表绘制工具学习笔记
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd arr1 = np.random.rand(10)#一维数组
arr2 = np.random.rand(10, 2)#二维数组 plt.plot(arr2)
# plot可以没有横坐标,纵坐标为数组中的数据,横坐标对应着索引
plt.show()
# 一维数组就是一条线,二维数组就是两条线

魔法方法
# %matplotlib inline
# Spell it as two words, rather than three
# %matplotlib notebook
df = pd.DataFrame(np.random.rand(10, 2))
fig = df.plot(figsize=(5, 5))
# pandas内置了plot
# df是二维数据所以图中有两条线

fig = df.plot(figsize=(3, 3))
plt.title("title")
plt.xlabel("x")
plt.ylabel("y")
# plt跟在图的后面就能发挥作用,而不在于图是由pandas画的还是有matplotlib
# 其他命令 plt.xlim([0, 10])
plt.ylim([0, 1.0])
plt.xticks(range(10))#刻度
plt.yticks([0, 0.2, 0.4, 0.6, 0.8, 1.0])

x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
c, s = np.cos(x), np.sin(x)
plt.plot(x, c)
plt.plot(x, s)
plt.grid()

plt.plot([i**2 for i in range(100)],
linestyle="--")

# marker参数
s = pd.Series(np.random.randn(100).cumsum())
# randn有符号的-1-1之间的小数,模拟股价的走势
s.plot(marker="o")

s.plot(marker="x")

# color参数
plt.hist(np.random.randn(100), color="r")

# 风格
import matplotlib.style as psl
psl.available
psl.use("bmh")
# 图标注释
s.plot()#画图
plt.text(50, 1, "(1,1)")
# 注释 横坐标,纵坐标,字符串

# 图标输出
s.plot()
plt.savefig(r"C:\Users\Mr_wa\Desktop\pic.png")
# 注意前面的r,否则报错
# 子图 # 创建图
fig1 = plt.figure(num=1, figsize=(4, 2))
plt.plot(np.random.rand(50).cumsum(), "k--")

fig2 = plt.figure(num=2, figsize=(4, 2))
plt.plot(50 - np.random.rand(50).cumsum(), "k--")

fig1 = plt.figure(num=1, figsize=(4, 2))
plt.plot(np.random.rand(50).cumsum(), "k--")
fig2 = plt.figure(num=1, figsize=(4, 2))
plt.plot(50 - np.random.rand(50).cumsum(), "k--")

# 创建子图 方式一 fig = plt.figure(figsize=(6, 4)) # 新建2*2表格,(2,2,1)表示2*2 第一个位置
# 先占位,后画图
ax1 = fig.add_subplot(2, 2, 1)
ax1.plot(np.random.rand(50).cumsum(), "k--")
ax1.plot(np.random.rand(50).cumsum(), "b--") # 第二个位置
ax2 = fig.add_subplot(2, 2, 2)
ax2.hist(np.random.rand(50), alpha=0.5) # 第三个位置
ax3 = fig.add_subplot(2, 2, 3)
df = pd.DataFrame(np.random.rand(10, 4), columns=["a","b","c","d"])
ax3.plot(df, alpha=0.5, marker=".")

# 创建子图 方式二 # 同时新建画布和矩阵
fig,axes = plt.subplots(2, 3, figsize=(10, 4)) # 在第一行第二个画布上画图 ax = axes[0, 1]
ax.plot(s) axes[0, 2].plot(s)

# 新建时间序列
ts = pd.Series(np.random.randn(1000), index=pd.date_range("1/1/2000", periods=1000))
ts = ts.cumsum() ts.plot(kind="line",
label="hehe",
color="r",
alpha=0.4,
use_index=True,
rot=45,
grid=True,
ylim=[-50, 50],
yticks=list(range(-50, 50, 10)),
figsize=(8, 4),
title="test",
)

df = pd.DataFrame(np.random.randn(1000, 4))
df = df.cumsum() df.plot(kind="line",
label="hehe",
color="r",
alpha=0.4,
use_index=True,
rot=45,
grid=True,
ylim=[-50, 50],
yticks=list(range(-50, 50, 10)),
figsize=(8, 4),
title="test",)

# 柱状图 fig,axes = plt.subplots(3, 1, figsize=(10, 5)) s = pd.Series(np.random.rand(10))
df = pd.DataFrame(np.random.rand(10, 4)) # 单系列柱状图
s.plot(kind="bar", ax=axes[0]) # 多系列柱状图
df.plot(kind="bar", ax=axes[1]) # 多系列堆叠图
df.plot(kind="bar", stacked=True, ax=axes[2])

# 柱状图的第二种画法plt.bar() plt.figure(figsize=(10, 4))
x = np.arange(10)
y1 = np.random.rand(10)
y2 = -np.random.rand(10) plt.bar(x, y1, width=1, facecolor="yellowgreen", edgecolor="white", yerr=y1 * 0.1)
plt.bar(x, y2, width=1, facecolor="lightskyblue", edgecolor="white", yerr=y2 * 0.1)

# 面积图、填图、饼图 # 新建画布和矩阵
fig, axes = plt.subplots(2,1,figsize=(8,6))
# 准备数据
df1 = pd.DataFrame(np.random.rand(10,4), columns=["a","b","c","d"])
df2 = pd.DataFrame(np.random.randn(10,4), columns=["a","b","c","d"]) # 画图方式1——pandas
df1.plot.area(colormap="Greens_r",alpha=0.5,ax=axes[0]) # 数据df1在第一个位置画图
df2.plot.area(stacked=False,colormap="Set2",alpha=0.5,ax=axes[1]) # 数据df2在第二个位置画图

# 直方图+密度图 s = pd.Series(np.random.randn(1000)) s.hist(bins=20,
histtype="bar",
align="mid",
orientation="vertical",
alpha=0.5,
)
# bins 决定了箱子的数量
# histtype=step/stepfilled/bar
# orientation=vertical/horizontal # 密度图
s.plot(kind="kde", style="k--",)

# 散点图 plt.figure(figsize=(8,6)) x = np.random.randn(1000)
y = np.random.randn(1000) plt.scatter(x,y,marker=".",
s = np.random.randn(1000)*100,
cmap = "Reds")

# 极坐标 # 创建数据
s = pd.Series(np.arange(20))
theta = np.arange(0,2*np.pi,0.02) # 新建画布
fig = plt.figure(figsize=(8,4)) # 创建矩阵
ax1 = plt.subplot(1,2,1,projection="polar")
ax2 = plt.subplot(1,2,2) # 画图
ax1.plot(theta, theta*3,linestyle="--",lw=1)
ax1.plot(s, linestyle="--",lw=1) ax2.plot(theta, theta*3, linestyle="--",lw=1)
ax2.plot(s)

# 箱型图 # 创建画布和矩阵
fig, axes = plt.subplots(2,1,figsize=(10,6)) # 设置颜色
color = dict(boxes="DarkGreen", whiskers="DarkOrange", medians="DarkBlue",caps="Gray") # 数据
df # 画图
df.plot.box(ax = axes[0],color=color)

# 箱型图的第二种画法 plt.figure(figsize=(10,4)) df.boxplot()

# 表格样式创建 DataFrame.style # 按元素处理样式:style.applymap() def color_neg_red(val):
if val < 0.5:
color = "red"
else:
color = "black"
return("color:%s" %color) # 改变表格的样式:使小于0.5的数字为红色,大于0.5的为黑色
df.style.applymap(color_neg_red)
Matplotlib 图表绘制工具学习笔记的更多相关文章
- 让IE8支持HTML5及canvas功能!chart.js图表绘制工具库IE8上兼容方案
第一步,我们加上对html5的支持. <!--[if IE]> <script src="/public/html5.js" type="text/ja ...
- 图表绘制工具--Matplotlib 1
''' [课程3.] Matplotlib简介及图表窗口 Matplotlib → 一个python版的matlab绘图接口,以2D为主,支持python.numpy.pandas基本数据结构,运营高 ...
- 图表绘制工具--Matplotlib 2
''' [课程3.] 基本图表绘制 plt.plot() 图表类别:线形图.柱状图.密度图,以横纵坐标两个维度为主 同时可延展出多种其他图表样式 plt.plot(kind='line', ax=No ...
- 【网易微专业】图表绘制工具Matplotlib
01 与图片的交互方式设置 这一小节简要介绍一下Matplotlib的交互方式 import pandas as pd import numpy as np import matplotlib.pyp ...
- 图表绘制工具--Matplotlib 3
''' [课程3.] 表格样式创建 表格视觉样式:Dataframe.style → 返回pandas.Styler对象的属性,具有格式化和显示Dataframe的有用方法 样式创建: ① Style ...
- PowerDesigner16工具学习笔记-工具介绍
1.初始界面 1.1 .浏览窗口:本地(Local)浏览窗口.知识库(Repository)浏览窗口 Local:用于显示本地模型 Repository:用于显示知识库模型 1.2 .输出窗口:用于显 ...
- Matplotlib基础 可视化绘图 学习笔记
简单的绘图 1.确定画布并画线 import matplotlib.pyplot as plt #静态绘图 fig = plt.figure() ax = fig.add_subplot(345) # ...
- rsync同步工具学习笔记
rsync同步工具 1.rsync介绍 rsync是一款开源的.快速的.多功能的.可实现全量及增量的本地或远程数据同步备份的优秀工具.rsync软件适用于unix/linux/windows等多种操作 ...
- Git 版本控制工具(学习笔记)
GIT(分布式) 一.Git 初始版本控制工具 1. 安装Git Ubuntu系统下,打开shell界面,输入: sudo apt-get install git-core 之后回车输入密码,即可完 ...
随机推荐
- 五:SpringBoot-多个拦截器配置和使用场景
SpringBoot-多个拦截器配置和使用场景 1.拦截器简介 1.1 拦截器中应用 2.拦截器用法 2.1 编写两个拦截器 2.1.1 OneInterceptor 拦截器 2.1.2 TwoInt ...
- 云服务器镜像问题("Couldn't resolve host 'mirrors.tencentyun.com')
云服务器镜像问题("Couldn't resolve host 'mirrors.tencentyun.com') 原因: 腾讯云服务器内网yum源的域名 mirrors.tencentyu ...
- MB与Mb
MB/s的含义是兆字节每秒,Mbit/s的含义是兆比特每秒,前者是指每秒传输的字节数量,后者是指每秒传输的比特位数.即B=Byte,b=bit,1Byte=8bit.下载时用的是B,交换机上用的是b, ...
- UI自动化实战进阶PO设计模式
前言 经过前面的实战我们已经编写了几个测试用例,下面我们要用PO设计模式来调整我们的代码,让页面元素和测试业务进行分离,这样看起来直观而且后期的维护也方便. python有一个第三方的PO设计的库,既 ...
- B - Play on Words
如果这个图是欧拉路,则每个顶点的出度等于入度.即out[i] = in[i] 如果这个图是半欧拉图,则起点的出度比入度大1,终点的入度比出度大1.其余顶点的出度等于入度.如果满足上述条件,就可以将所有 ...
- CF-1328 F. Make k Equal
F. Make k Equal 题目链接 题意 长度为n的序列,每次可以选择一个最大的数字将其减一或者选择一个最小的数字将其加一,问最少操作多少次可以使得序列中至少存在 k 个一样的数字 分析 官方题 ...
- hdu5459 Jesus Is Here
Problem Description I've sent Fang Fang around 201314 text messages in almost 5 years. Why can't she ...
- Educational Codeforces Round 94 (Rated for Div. 2) A. String Similarity (构造水题)
题意:给你一个长度为\(2*n-1\)的字符串\(s\),让你构造一个长度为\(n\)的字符串,使得构造的字符串中有相同位置的字符等于\(s[1..n],s[2..n+1],...,s[n,2n-1] ...
- Centos 7 安装nginx指定版本
官方版本列表:http://nginx.org/download/ 1.安装 wget http://nginx.org/download/nginx-1.10.3.tar.gz tar -zxvf ...
- 找工作面试题记录与参考资料(Golang/C++/计算机网络/操作系统/算法等)
记录下去年(2020年)找工作的面试题及参考资料. C++ 智能指针的实现原理 多态的实现原理[2] C++11/14/17新特性[3] 手写memcpy和memmove[4] 介绍下boost库 计 ...