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

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
主站蜘蛛池模板: 平山县| 保靖县| 将乐县| 怀安县| 晋宁县| 蓬溪县| 兴业县| 余干县| 杭锦后旗| 娱乐| 剑川县| 永州市| 商河县| 马龙县| 伊春市| 晋江市| 尼木县| 嵊州市| 汕尾市| 措美县| 曲靖市| 铜川市| 香港| 奇台县| 苍山县| 曲松县| 新晃| 西丰县| 临清市| 固始县| 巫溪县| 岗巴县| 平江县| 孟州市| 桂林市| 广安市| 武山县| 浑源县| 凉山| 富蕴县| 昌乐县|