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

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
主站蜘蛛池模板: 名山县| 井冈山市| 平湖市| 泉州市| 武强县| 贵州省| 临猗县| 鄱阳县| 秦皇岛市| 弥渡县| 崇明县| 女性| 中山市| 怀宁县| 淳化县| 克拉玛依市| 日照市| 堆龙德庆县| 新营市| 台东县| 吐鲁番市| 舒兰市| 蓝田县| 博野县| 寻甸| 当雄县| 泰来县| 黄梅县| 运城市| 建宁县| 远安县| 边坝县| 韶山市| 错那县| 天长市| 饶河县| 隆德县| 临夏县| 广昌县| 祁东县| 普兰县|