官术网_书友最值得收藏!

Chapter 2. The matplotlib Architecture

As software systems age, they tend to undergo a natural evolution through processes such as feature addition and debugging. The resultant codebase embodies the familiar tension between maintaining the old code and at the same time offering the end users an improved product. Architectures for long-term projects are not something that were originally carved in stone and adhered to monomaniacally ever since. Rather, they are living, adaptive concepts that guide the plans and activities of a project's contributors.

The matplotlib module arose out of such an environment, and it has continuous goals of refining and improving its architecture and updating its older bits to follow the best practices of and the latest advances in not only the project itself, but also the wider Python community over the years since its inception.

In this chapter, we will perform the following tasks:

  • Review the original design goals of matplotlib and explore its evolution
  • Examine the current architecture at a high level using the metaphors put forth by the core developers of matplotlib
  • Dive into the details of the three major layers of the matplotlib architecture
  • Explore the matplotlib namespace in relation to the architectural layers
  • Create a dependency graph for a standard matplotlib script to gain additional insight on a project's structure in relation to the user scripts
  • Take a look at the additional packages that were not a part of the matplotlib release and identify their connection with the overall architecture
主站蜘蛛池模板: 昔阳县| 冕宁县| 固原市| 嵩明县| 三门县| 西安市| 襄垣县| 荆门市| 安宁市| 昌吉市| 嘉定区| 嘉定区| 仙游县| 宜章县| 正安县| 嘉禾县| 定陶县| 登封市| 来安县| 江阴市| 靖江市| 沂南县| 乐陵市| 黑山县| 莲花县| 奉贤区| 维西| 新龙县| 旌德县| 堆龙德庆县| 全椒县| 顺义区| 贺兰县| 平南县| 灵宝市| 彰化市| 随州市| 体育| 龙陵县| 金平| 沛县|