一组用于以面向对象的方式测试matplotlib图形的实用工具。
项目描述
# plotchecker
[](https://travis-ci.org/jhamrick/plotchecker)
[](http://codecov.io/github/jhamrick/plotchecker?branch=master)
[](http://plotchecker.readthedocs.org/en/latest/?badge=latest)
一组用于检查和评分matplotlib图形的实用工具。**请注意,`plotchecker`仅兼容Python 3,不兼容旧版Python 2**。文档可在[Read The Docs](https://plotchecker.readthedocs.org/)上找到。
## 安装
要安装`plotchecker`
```
pip3 install plotchecker
```
## 背景
此库的灵感来源于在编程作业中包含绘图练习。通常,有多种解决同一问题的方法;例如,如果要求学生创建一个“散点图”,以下都是有效的实现方法
```python
# 方法1
plt.plot(x, y, 'o')
# 方法2
plt.scatter(x, y)
# 方法3
for i in range(len(x))
plt.plot(x[i], y[i], 'o')
# 方法4
for i in range(len(x))
plt.scatter(x[i], y[i])
```
不幸的是,上述每种方法在matplotlib中都会创建不同的数据底层表示。方法1创建一个Line对象;方法2创建一个Collection;方法3创建*n*个Line对象,其中*n*是点的数量;方法4创建*n*个Collection对象。测试所有这些不同的边缘情况给教师带来了巨大的负担。
虽然上述一些选项在简单性和性能方面确实比其他选项好,但是要求学生以一种非常具体的方式来创建他们的图表,而我们只要求他们创建散点图,这似乎并不公平。如果它们在视觉上几乎相同,为什么这不是一种有效的方法呢?
请进入“plotchecker”,它旨在抽象化这些差异,并为教师提供一个简单的界面来检查学生的图表。所有必要的只是访问“Axes”对象,然后您可以编写一组通用的测试,用于检查与创建方式无关的图表。
```python
from plotchecker import ScatterPlotChecker
axis = plt.gca()
pc = ScatterPlotChecker(axis)
pc.assert_x_data_equal(x)
pc.assert_y_data_equal(y)
...
```
请参阅[Examples.ipynb](Examples.ipynb)笔记本,以了解如何使用`plotchecker`的更多示例。
注意事项:在matplotlib中创建图表的方式有很多种。`plotchecker`几乎肯定会错过一些边缘情况。如果您发现任何问题,请提交错误报告(或者更好的,提交一个PR!)
[](https://travis-ci.org/jhamrick/plotchecker)
[](http://codecov.io/github/jhamrick/plotchecker?branch=master)
[](http://plotchecker.readthedocs.org/en/latest/?badge=latest)
一组用于检查和评分matplotlib图形的实用工具。**请注意,`plotchecker`仅兼容Python 3,不兼容旧版Python 2**。文档可在[Read The Docs](https://plotchecker.readthedocs.org/)上找到。
## 安装
要安装`plotchecker`
```
pip3 install plotchecker
```
## 背景
此库的灵感来源于在编程作业中包含绘图练习。通常,有多种解决同一问题的方法;例如,如果要求学生创建一个“散点图”,以下都是有效的实现方法
```python
# 方法1
plt.plot(x, y, 'o')
# 方法2
plt.scatter(x, y)
# 方法3
for i in range(len(x))
plt.plot(x[i], y[i], 'o')
# 方法4
for i in range(len(x))
plt.scatter(x[i], y[i])
```
不幸的是,上述每种方法在matplotlib中都会创建不同的数据底层表示。方法1创建一个Line对象;方法2创建一个Collection;方法3创建*n*个Line对象,其中*n*是点的数量;方法4创建*n*个Collection对象。测试所有这些不同的边缘情况给教师带来了巨大的负担。
虽然上述一些选项在简单性和性能方面确实比其他选项好,但是要求学生以一种非常具体的方式来创建他们的图表,而我们只要求他们创建散点图,这似乎并不公平。如果它们在视觉上几乎相同,为什么这不是一种有效的方法呢?
请进入“plotchecker”,它旨在抽象化这些差异,并为教师提供一个简单的界面来检查学生的图表。所有必要的只是访问“Axes”对象,然后您可以编写一组通用的测试,用于检查与创建方式无关的图表。
```python
from plotchecker import ScatterPlotChecker
axis = plt.gca()
pc = ScatterPlotChecker(axis)
pc.assert_x_data_equal(x)
pc.assert_y_data_equal(y)
...
```
请参阅[Examples.ipynb](Examples.ipynb)笔记本,以了解如何使用`plotchecker`的更多示例。
注意事项:在matplotlib中创建图表的方式有很多种。`plotchecker`几乎肯定会错过一些边缘情况。如果您发现任何问题,请提交错误报告(或者更好的,提交一个PR!)
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
plotchecker-0.2.0.tar.gz (75.0 kB 查看哈希)
构建分布
plotchecker-0.2.0-py2.py3-none-any.whl (116.1 kB 查看哈希)
关闭
plotchecker-0.2.0.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 18bc08ad2900365beb5e54a96d77927feae2e12efc1484b1ea0d0ccc491f971c |
|
MD5 | dbd42b7e117e7a49513e68c9cf86947c |
|
BLAKE2b-256 | 2809f4a15d3ebc6f7b9d514c33279ecc884928b1a4c976583a9e713a955269c7 |
关闭
plotchecker-0.2.0-py2.py3-none-any.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 01c5d2a7e549553e463729777c365ff6204742cc86f0bc2a5cbbb276da10744c |
|
MD5 | 1924e4fc473eb77f9f273af04391f461 |
|
BLAKE2b-256 | 300f99ad6ee7e2ff85c36b1359db9f1718b47f9228a6bebe9ee161f236c6b7af |