【网易微专业】图表绘制工具Matplotlib
01 与图片的交互方式设置
这一小节简要介绍一下Matplotlib的交互方式
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(111)
X = np.random.rand(1000)
y = np.random.rand(1000)
# 图表窗口1 → plt.show()
plt.plot(X)
plt.show()
# 直接生成图表
# 图表窗口2 → 魔法函数,嵌入图表
% matplotlib inline
plt.scatter(X, y)
# 直接嵌入图表,不用plt.show()
# <matplotlib.collections.PathCollection at ...> 代表该图表对象
# 图表窗口3 → 魔法函数,弹出可交互的matplotlib窗口,缺点是特别占内存
% matplotlib notebook
s = pd.Series(X)
s.plot(style = 'k--o',figsize=(10,5))
# 可交互的matplotlib窗口,不用plt.show()
# 可做一定调整
# 图表窗口4 → 魔法函数,弹出matplotlib控制台,这种情况下就不是嵌入在网页中了,而是有单独的GUI
% matplotlib qt5
df = pd.DataFrame(np.random.rand(50,2),columns=['A','B'])
df.hist(figsize=(12,5),color='g',alpha=0.8)
# 可交互性控制台
# 如果已经设置了显示方式(比如notebook),需要重启然后再运行魔法函数
# 网页嵌入的交互性窗口 和 控制台,只能显示一个
#plt.close()
# 关闭窗口
#plt.gcf().clear()
# 每次清空图表内内容
02 坐标轴的刻度、图中的网格设置
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
np.random.seed(11)
df = pd.DataFrame(np.random.rand(10, 2), columns=['A', 'B'])
df
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
| A | B | |
|---|---|---|
| 0 | 0.180270 | 0.019475 |
| 1 | 0.463219 | 0.724934 |
| 2 | 0.420204 | 0.485427 |
| 3 | 0.012781 | 0.487372 |
| 4 | 0.941807 | 0.850795 |
| 5 | 0.729964 | 0.108736 |
| 6 | 0.893904 | 0.857154 |
| 7 | 0.165087 | 0.632334 |
| 8 | 0.020484 | 0.116737 |
| 9 | 0.316367 | 0.157912 |
fig = plt.figure(figsize=(10, 2))
print(fig, type(fig))
Figure(720x144) <class 'matplotlib.figure.Figure'>
<Figure size 720x144 with 0 Axes>
fig = df.plot(kind='bar')
plt.title('df') # 设置表的标题
plt.xlabel('x') # 设置x轴
plt.ylabel('y', rotation=360) # 设置y轴,rotation可以将label转到合适的角度
plt.legend(loc='best') # 设置图例显示在图的哪一边
# 可选值如下
# best
# upper right
# upper left
# lower left
# lower right
# right
# center left
# center right
# lower center
# upper center
# center
plt.xlim(0, 12) # 设置x轴的长度,输入两个数a,b,表示x从a到b
plt.ylim(0, 1.2) # 设置y轴的长度,输入两个数a,b,表示x从a到b
plt.xticks(range(12), rotation=360) # 设置x轴的刻度,输入是列表或者range数据结构;设置rotation
plt.yticks(np.linspace(0, 1.2, 11))
# 为原本的坐标刻度设置‘label’,同理y轴也可以这么设置
fig.set_xticklabels(['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K']);

x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
a, b = np.cos(x), np.sin(x)
plt.plot(x, a, '--', label='cos')
plt.plot(x, b, label='sin') # 要想显示图例需要设置label属性,然后再利用legend方法显示
plt.legend(loc='best')
# x和y坐标轴刻度显示的方式,'inout'正好插入坐标轴,'in'朝内,'out'朝外
plt.rcParams['xtick.direction'] = 'out'
plt.rcParams['ytick.direction'] = 'inout'
#坐标轴的刻度是否显示,如果显示则是True,若是不显示,则是False
plt.tick_params(bottom=True, left=False, right=True, top=True)
plt.grid(True, linestyle='--', color='purple', axis='both')
frame = plt.gca()
# plt.axis('off') # 整个关闭坐标轴
# 关闭坐标轴
frame.axes.get_xaxis().set_visible(True) # 设置坐标轴是否可见
frame.axes.get_yaxis().set_visible(True) # True可见,False不可见

【网易微专业】图表绘制工具Matplotlib的更多相关文章
- 图表绘制工具--Matplotlib 1
''' [课程3.] Matplotlib简介及图表窗口 Matplotlib → 一个python版的matlab绘图接口,以2D为主,支持python.numpy.pandas基本数据结构,运营高 ...
- 图表绘制工具--Matplotlib 2
''' [课程3.] 基本图表绘制 plt.plot() 图表类别:线形图.柱状图.密度图,以横纵坐标两个维度为主 同时可延展出多种其他图表样式 plt.plot(kind='line', ax=No ...
- 图表绘制工具--Matplotlib 3
''' [课程3.] 表格样式创建 表格视觉样式:Dataframe.style → 返回pandas.Styler对象的属性,具有格式化和显示Dataframe的有用方法 样式创建: ① Style ...
- 让IE8支持HTML5及canvas功能!chart.js图表绘制工具库IE8上兼容方案
第一步,我们加上对html5的支持. <!--[if IE]> <script src="/public/html5.js" type="text/ja ...
- Web安全工程师(网易微专业Web安全学习笔记)
本篇笔记的配套视频:网易云课堂,微专业/web安全工程师. 一.WEB基础知识 1.1 Web简介 1.1.1 Web介绍 1)web的发展 web1.0:以内容为中心,网站提供内容信息,用户进行访问 ...
- 网易微专业 UI设计师
网易云课堂的UI设计师微专业,需要的留言
- Matplotlib 图表绘制工具学习笔记
import numpy as np import matplotlib.pyplot as plt import pandas as pd arr1 = np.random.rand(10)#一维数 ...
- Python图表绘制:matplotlib绘图库入门
matplotlib 是Python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中. 它的文档相当完备,并 ...
- Python图表绘制:matplotlib绘图库入门(转)
matplotlib 是Python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中. 它的文档相当完备,并 ...
随机推荐
- pandas.DataFrame.where和mask 解读
1.前言背景 没怎么用过df.where 都是直接使用loc.apply等方法去解决. 可能是某些功能还没有超出loc和apply的适用范围. 2.进入df.where和df.mask DataFra ...
- Jquery 前端解码base64出现中文乱码的问题解决方案
<script src="../static/js/jquery.base64.js"></script> <script src="../ ...
- 使用Joda-Time优雅的处理日期时间(转)
简介 在Java中处理日期和时间是很常见的需求,基础的工具类就是我们熟悉的Date和Calendar,然而这些工具类的api使用并不是很方便和强大,于是就诞生了Joda-Time这个专门处理日期时间的 ...
- trigger(type,[data]) 在每一个匹配的元素上触发某类事件。
trigger(type,[data]) 概述 在每一个匹配的元素上触发某类事件.大理石平台价格表 这个函数也会导致浏览器同名的默认行为的执行.比如,如果用trigger()触发一个'submit', ...
- LA 7043 International Collegiate Routing Contest 路由表 字典树离散化+bitset 银牌题
题目链接:给你n(n<=3e4)个路由地址(注意有子网掩码现象), 路由地址:128.0.0.0/1的形式 要求你输出一个路由集合,其是给定的路由集合的补集,且个数越少越好 #include & ...
- typedef struct和指针
在学习链表时遇到了typedef已经用typedef定义的指针,不是很懂,某浪里有位博主的博文写的很详细,我直接粘过来 假设我们定义一个结构体: typedef struct ANSWER_HEADE ...
- codeforces#1165 F2. Microtransactions (hard version) (二分+贪心)
题目链接: https://codeforces.com/contest/1165/problem/F2 题意: 需要买$n$种物品,每种物品$k_i$个,每个物品需要两个硬币 每天获得一个硬币 有$ ...
- 压力测试 Jmeter的简单测试及常用查看结果参数介绍
(1)保存方案 (2)创建线程组 线程组用来模拟用户的并发访问 线程组主要包含三个参数:线程数.准备时长(Ramp-Up Period(in seconds)).循环次数. 线程数:虚拟用户数.一个虚 ...
- Flutter打开第三方应用
在flutter中打开第三方应用可以使用url_launcher插件 打开https://pub.dartlang.org/,然后搜索url_launcher,然后点击进入该插件界面 大家在insta ...
- mysql:启动服务时遇到的问题
1.cmd命令: 在切换路径时,如果要切到另外一个磁盘,比如从C盘切到E盘,命令如下: cd /d 你要切换的路径 2.错误:“服务名无效” 问题原因:mysql服务没有安装.(参考:https:// ...