Coder Social home page Coder Social logo

fantastic-matplotlib's Introduction

Fantastic-Matplotlib

本项目《Fantastic-Matplotlib》是Datawhale🐳数据可视化小组的一个开源项目。

Matplotlib可以说是python数据可视化最重要且常见的工具之一,每一位和数据打交道的人几乎都不可避免要用到,此外也有大量的可视化工具是基于matplotlib做的二次开发。

设计这样一套开源教程的初衷在于笔者最初在用python做数据可视化时面临两大痛点,

  • 没有系统梳理matplotlib的绘图接口,常常是现用现查,用过即忘,效率极低
  • 没有深入理解matplotlib的设计框架,往往是只会复制粘贴,不知其所以然,面对复杂图表时一筹莫展

基于此,为了彻底解决这些痛点,笔者下定决心通读官方文档,相比于市面上的很多学习材料,官方文档的内容极为详细而全面,更重要的是,其阐明了matplotlib包的设计架构,这些对于我们掌握并应用是非常有帮助的。在通读完官方文档并结合一定的归纳总结与实践之后,笔者能明显察觉到对于matplotlib的理解上了一个层次。

如果屏幕前的你们,也正在面临以上说的这两个痛点,那么学习本项目教程将会是一个不错的选择。

本项目重点希望在两个层面帮助读者构建matplotlib的知识体系,

  • 从图形,布局,文本,样式等多维度系统梳理matplotlib的绘图方法,构建对于绘图方法的整体理解
  • 从绘图API层级,接口等方面阐明matplotlib的设计理念,摆脱只会复制粘贴的尴尬处境

最后还要说的是,对于学习完本教程的读者,若是仍然觉得学有余力不过瘾,强烈建议按需阅读官方文档,相信你一定会有所收获的。

关于本项目的名称,fantastic-matplotlib,在笔者精读过官网文档之后,才愈发觉得精妙,仿佛看到了一角下的广袤冰山,被它强大的功能和精巧的设计惊艳到了,之前对于matplotlib的了解还是过于浅薄,因此想用fantastic来表示笔者的感慨,也希望能够通过这样一个开源教程带领读者领略的matplotlib的精彩之处。

下图是该项目的大纲,总共五个章节介绍整个Fantastic-Matplotlib数据可视化项目。

使用说明

目录

  • 第一回:Matplotlib初相识

和matplotlib的初次邂逅,赶紧拿出画布,画笔,一段奇幻的旅途即将开启

  • 第二回:艺术画笔见乾坤

挥舞起手中的艺术画笔,发挥想象力,在画布上自由地绘制图形

  • 第三回:布局格式定方圆

没有规矩不成方圆,你应当开始学会如何合理地在画布上布局了

  • 第四回:文字图例尽眉目

为了让你的画流传更久远,快来学习下如何在画布上题字吧

  • 第五回:样式色彩秀芳华

下一步你需要学习下怎么样绘制出更加花样繁复,色彩绚丽的画了

致谢

感谢以下Datawhale成员对项目推进作出的贡献(排名不分先后):

贡献者名单

成员 个人简介 个人主页
杨剑砺 Datawhale成员,项目负责人,数据分析师 公众号:口羊的数据分析实验室
杨煜 Datawhale成员,数据分析师 公众号:BI数据可视化
耿远昊 Datawhale成员,华东师范大学在读 Github:https://github.com/GYHHAHA
李运佳 Datawhale成员,上海交通大学在读 知乎:https://www.zhihu.com/people/li-yun-jia-68-9
居凤霞 Datawhale成员,数据分析师,南瓜书项目贡献者

项目贡献情况

《Fantastic-Matplotlib》V1.0 : 项目第一版上线

项目构建与整合:杨剑砺

第一章:杨剑砺

第二章:杨煜,居凤霞

第三章:耿远昊

第四章:李运佳

第五章:杨剑砺

《Fantastic-Matplotlib》V1.1 :第一次全面更新

全部章节的更新完善:杨剑砺

关注我们

Datawhale是一个专注AI领域的开源组织,以“for the learner,和学习者一起成长”为愿景,构建对学习者最有价值的开源学习社区。关注我们,一起学习成长。

LICENSE

知识共享许可协议

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

fantastic-matplotlib's People

Contributors

skywateryang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

fantastic-matplotlib's Issues

关于第二章中部分问题反馈

1.在第二章中2.Patch下的2) bar-柱状图部分:
有一行代码是:
plt.bar(np.arange(16), y, alpha=0.5, width=0.5, color='yellow', edgecolor='red', label='The First Bar', lw=3);
可以看到这里设置了label为The First Bar,如果直接运行原代码是不会有label显示的,需在最后加上一句plt.legend()

2.针对1. 2DLines下,2) errorbar绘制误差折线图的部分,在plt.errorbar()有很多可以设置的参数,这里笔者可以在基础代码上加上一些参数的设置,可以让例子更生动,比如:
plt.errorbar(x,y+3,yerr=yerr,fmt='o',ecolor='r',color='b',elinewidth=2,capsize=4);
plt.errorbar(x,y,yerr=error_range,fmt='o:',ecolor='hotpink',elinewidth=3,ms=5,mfc='salmon',capsize=3)

关于第4part的内容补充

【1】坐标:二.Tick上的文本--b) Tick Locators
问题:对locator=plt.MaxNLocator(nbins=7)的解释没有,建议加上对plt.MaxNLocator(nbins=m)的解释,“选择合适的位置并不超过m个间隔”。在下面的例子中,建议把nbins=10改为nbins=3,这样对比其他locator的效果会更清晰一点。

【2】坐标:二.Tick上的文本--matplotlib.dates 模块
问题:没有写明导入mdates和datetime模块,个人认为对新手不是很友好,特别是mdates这种被as过的。建议加上
import matplotlib.dates as mdates
import datetime

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.