《Python数据可视化之matplotlib实践》 源码 第二篇 精进 第五章
图 5.1

import matplotlib.pyplot as plt import numpy as np from matplotlib.ticker import AutoMinorLocator, MultipleLocator, FuncFormatter x=np.linspace(0.5, 3.5, 100) y=np.sin(x) fig=plt.figure(figsize=(8, 8)) ax=fig.add_subplot(111) ax.xaxis.set_major_locator(MultipleLocator(1.0)) ax.yaxis.set_major_locator(MultipleLocator(1.0)) ax.xaxis.set_minor_locator(AutoMinorLocator(4)) ax.yaxis.set_minor_locator(AutoMinorLocator(4)) def minor_tick(x, pos): if not x%1.0: return "" return "%.2f"%x ax.xaxis.set_minor_formatter(FuncFormatter(minor_tick)) ax.tick_params("y", which='major',length=15, width=2.0, colors='r') ax.tick_params(which='minor', length=5, width=1.0, labelsize=10, labelcolor='0.25') ax.set_xlim(0, 4) ax.set_ylim(0, 2) ax.plot(x, y, c=(0.25, 0.25, 1.00), lw=2, zorder=10) # ax.plot(x, y, c=(0.25, 0.25, 1.00), lw=2, zorder=0) ax.grid(linestyle='-', linewidth=0.5, color='r', zorder=0) # ax.grid(linestyle='-', linewidth=0.5, color='r', zorder=10) # ax.grid(linestyle='--', linewidth=0.5, color='0.25', zorder=0) plt.show()
-------------------------------------------------------------------------------------
图 5.2

import matplotlib.pyplot as plt import numpy as np fig=plt.figure(facecolor=(1.0, 1.0, 0.9412)) ax=fig.add_axes([0.1, 0.4, 0.5, 0.5]) for ticklabel in ax.xaxis.get_ticklabels(): ticklabel.set_color("slateblue") ticklabel.set_fontsize(18) ticklabel.set_rotation(30) for ticklabel in ax.yaxis.get_ticklabels(): ticklabel.set_color("lightgreen") ticklabel.set_fontsize(20) ticklabel.set_rotation(2) plt.show()
-------------------------------------------------------------------------------------
图 5.3

import matplotlib.pyplot as plt import numpy as np from calendar import month_name, day_name from matplotlib.ticker import FormatStrFormatter fig=plt.figure() ax=fig.add_axes([0.2, 0.2, 0.7, 0.7]) x=np.arange(1, 8, 1) y=2*x ax.plot(x, y, ls='-', lw=2, color='orange', marker='o', ms=20, mfc='c', mec='r') ax.yaxis.set_major_formatter(FormatStrFormatter(r"$\yen%1.1f$")) plt.xticks(x, day_name[0:7], rotation=20) ax.set_xlim(0, 8) ax.set_ylim(0, 18) plt.show()
-------------------------------------------------------------------------------------
图 5.4

import matplotlib.pyplot as plt import numpy as np x=np.linspace(0.5, 3.5, 100) y=np.sin(x) fig=plt.figure(figsize=(8, 8)) ax=fig.add_subplot(111) ax.plot(x, y, c='b', ls='-', lw=2) ax.annotate("maximum", xy=(np.pi/2, 1.0), xycoords='data', xytext=((np.pi/2)+0.15, 0.8), textcoords="data", weight="bold", color='r', arrowprops=dict(arrowstyle='->', connectionstyle='arc3', color='r')) ax.text(2.8, 0.4, "$y=\sin(x)$", fontsize=20, color='b', bbox=dict(facecolor='y', alpha=0.5)) plt.show()
-------------------------------------------------------------------------------------
图 5.5

import matplotlib.pyplot as plt import numpy as np x=np.linspace(0.0, 10, 40) y=np.random.randn(40) plt.plot(x, y, ls='-', lw=2, marker='o', ms=20, mfc='orange', alpha=0.6) plt.grid(ls=':', color='gray', alpha=0.5) plt.text(6, 0, 'Matplotlib', size=30, rotation=30.0, bbox=dict(boxstyle='round', ec='#8968CD', fc='#FFE1FF')) plt.show()
-------------------------------------------------------------------------------------
图 5.6

import matplotlib.pyplot as plt import numpy as np x=np.linspace(0.0, 10, 40) y=np.random.randn(40) plt.plot(x, y, ls='-', lw=2, marker='o', ms=20, mfc='orange', alpha=0.6) plt.grid(ls=':', color='gray', alpha=0.5) plt.text(1, 2, 'Matplotlib', size=50, alpha=0.5) plt.show()
-------------------------------------------------------------------------------------
图 5.7

import matplotlib.pyplot as plt import numpy as np x=np.linspace(0, 10, 2000) y=np.sin(x)*np.cos(x) fig=plt.figure() ax=fig.add_subplot(111) ax.plot(x, y, ls='-', lw=2) bbox=dict(boxstyle='round', fc='#7EC0EE', ec='#9B30FF') arrowprops=dict(arrowstyle='-|>', color='r', connectionstyle='angle, angleA=0, angleB=90, rad=10') ax.annotate("single point", (5, np.sin(5)*np.cos(5)), xytext=(3, np.sin(3)*np.cos(3)), fontsize=12, color='r', bbox=bbox, arrowprops=arrowprops) ax.grid(ls=":", color='gray', alpha=0.6) plt.show()
-------------------------------------------------------------------------------------
图 5.8

import matplotlib.pyplot as plt import numpy as np x=np.linspace(0, 10, 2000) y=np.sin(x) fig=plt.figure() ax=fig.add_subplot(111) ax.plot(x, y, ls='-', lw=2) ax.set_ylim(-1.5, 1.5) arrowprops=dict(arrowstyle='-|>', color='r') ax.annotate("", (3*np.pi/2, np.sin(3*np.pi/2)+0.15), xytext=(np.pi/2, np.sin(np.pi/2)+0.15), color='r', arrowprops=arrowprops) ax.arrow(0.0, -0.4, np.pi/2, 1.2, head_width=0.05, head_length=0.1, fc='g', ec='g') ax.grid(ls=':', color='gray', alpha=0.6) plt.show()
-------------------------------------------------------------------------------------
图 5.9

import matplotlib.pyplot as plt import matplotlib as mpl import numpy as np from matplotlib.sankey import Sankey mpl.rcParams["font.sans-serif"]=['FangSong'] mpl.rcParams['axes.unicode_minus']=False flows=[0.2, 0.1, 0.4, 0.3, -0.6, -0.05, -0.15, -0.2] labels=['', '', '', '', 'family', 'trip', 'education', 'sport'] orientations=[1, 1, 0, -1, 1, -1, 1, 0] sankey=Sankey() sankey.add(flows=flows, labels=labels, orientations=orientations, color='c', fc='lightgreen', patchlabel='Life Cost', alpha=0.7) diagrams=sankey.finish() diagrams[0].texts[4].set_color('r') diagrams[0].texts[4].set_weight('bold') diagrams[0].text.set_fontsize(20) diagrams[0].text.set_fontweight('bold') plt.title("日常生活的成本开支的流量图") plt.show()
-------------------------------------------------------------------------------------
图 5.10

import matplotlib.pyplot as plt import matplotlib.patheffects as pes import numpy as np x=np.linspace(0.5, 3.5, 100) y=np.sin(x) fontsize=23 plt.plot(x, y, ls='--', lw=2) title='$y=\sin({x})$' xaxis_label='$x\_axis$' yaxis_label="$y\_axis$" title_text_obj=plt.title(title, fontsize=fontsize, va='bottom') xaxis_label_text_obj=plt.xlabel(xaxis_label, fontsize=fontsize-3, alpha=1.0) yaxis_label_text_obj=plt.ylabel(yaxis_label, fontsize=fontsize-3, alpha=1.0) title_text_obj.set_path_effects([pes.withSimplePatchShadow()]) pe=pes.withSimplePatchShadow(offset=(1, -1), shadow_rgbFace='r', alpha=0.3) xaxis_label_text_obj.set_path_effects([pe]) yaxis_label_text_obj.set_path_effects([pe]) plt.show()
-------------------------------------------------------------------------------------
图 5.11

import matplotlib.pyplot as plt import numpy as np x=np.linspace(0.5, 3.5, 100) y=np.sin(x) fig=plt.figure(figsize=(8, 8)) ax=fig.add_subplot(111) box=dict(facecolor='#6959CD', pad=2, alpha=0.4) ax.plot(x, y, c='b', ls='--', lw=2) title='$y=\sin({x})$' xaxis_label='$x\_axis$' yaxis_label="$y\_axis$" ax.set_xlabel(xaxis_label, fontsize=18, bbox=box) ax.set_ylabel(yaxis_label, fontsize=18, bbox=box) ax.set_title(title, fontsize=23, va='bottom') ax.yaxis.set_label_coords(-0.08, 0.5) ax.xaxis.set_label_coords(1.0, -0.05) ax.grid(ls='-.', lw=1, color='gray', alpha=0.5) plt.show()
-------------------------------------------------------------------------------------
posted on 2020-05-22 16:39 Angry_Panda 阅读(735) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异