# _*_ coding: utf-8 _*_ """ python_visual_animation.py by xianhu """ import numpy as np import matplotlib import matplotlib.pyplot as plt import matplotlib.font_manager as fm from mpl_toolkits.mplot3d import Axes3D # è§£å³ä¸æä¹±ç é®é¢ myfont = fm.FontProperties(fname="/Library/Fonts/Songti.ttc", size=14) matplotlib.rcParams["axes.unicode_minus"] = False def simple_plot(): """ simple plot """ # çæç»å¸ plt.figure(figsize=(8, 6), dpi=80) # æå¼äº¤äºæ¨¡å¼ plt.ion() # å¾ªç¯ for index in range(100): # æ¸ é¤åæå¾å plt.cla() # è®¾å®æ é¢ç plt.title("卿æ²çº¿å¾", fontproperties=myfont) plt.grid(True) # çææµè¯æ°æ® x = np.linspace(-np.pi + 0.1*index, np.pi+0.1*index, 256, endpoint=True) y_cos, y_sin = np.cos(x), np.sin(x) # 设置Xè½´ plt.xlabel("Xè½´", fontproperties=myfont) plt.xlim(-4 + 0.1*index, 4 + 0.1*index) plt.xticks(np.linspace(-4 + 0.1*index, 4+0.1*index, 9, endpoint=True)) # 设置Yè½´ plt.ylabel("Yè½´", fontproperties=myfont) plt.ylim(-1.0, 1.0) plt.yticks(np.linspace(-1, 1, 9, endpoint=True)) # ç»ä¸¤æ¡æ²çº¿ plt.plot(x, y_cos, "b--", linewidth=2.0, label="cos示ä¾") plt.plot(x, y_sin, "g-", linewidth=2.0, label="sin示ä¾") # 设置å¾ä¾ä½ç½®,locå¯ä»¥ä¸º[upper, lower, left, right, center] plt.legend(loc="upper left", prop=myfont, shadow=True) # æå plt.pause(0.1) # å ³éäº¤äºæ¨¡å¼ plt.ioff() # å¾å½¢æ¾ç¤º plt.show() return # simple_plot() def scatter_plot(): """ scatter plot """ # æå¼äº¤äºæ¨¡å¼ plt.ion() # å¾ªç¯ for index in range(50): # æ¸ é¤åæå¾å # plt.cla() # è®¾å®æ é¢ç plt.title("卿æ£ç¹å¾", fontproperties=myfont) plt.grid(True) # çææµè¯æ°æ® point_count = 5 x_index = np.random.random(point_count) y_index = np.random.random(point_count) # 设置ç¸å ³åæ° color_list = np.random.random(point_count) scale_list = np.random.random(point_count) * 100 # ç»æ£ç¹å¾ plt.scatter(x_index, y_index, s=scale_list, c=color_list, marker="o") # æå plt.pause(0.2) # å ³éäº¤äºæ¨¡å¼ plt.ioff() # æ¾ç¤ºå¾å½¢ plt.show() return # scatter_plot() def three_dimension_scatter(): """ 3d scatter plot """ # çæç»å¸ fig = plt.figure() # æå¼äº¤äºæ¨¡å¼ plt.ion() # å¾ªç¯ for index in range(50): # æ¸ é¤åæå¾å fig.clf() # è®¾å®æ é¢ç fig.suptitle("ä¸ç»´å¨ææ£ç¹å¾", fontproperties=myfont) # çææµè¯æ°æ® point_count = 100 x = np.random.random(point_count) y = np.random.random(point_count) z = np.random.random(point_count) color = np.random.random(point_count) scale = np.random.random(point_count) * 100 # çæç»å¸ ax = fig.add_subplot(111, projection="3d") # ç»ä¸ç»´æ£ç¹å¾ ax.scatter(x, y, z, s=scale, c=color, marker=".") # è®¾ç½®åæ è½´å¾æ ax.set_xlabel("X Label") ax.set_ylabel("Y Label") ax.set_zlabel("Z Label") # è®¾ç½®åæ è½´èå´ ax.set_xlim(0, 1) ax.set_ylim(0, 1) ax.set_zlim(0, 1) # æå plt.pause(0.2) # å ³éäº¤äºæ¨¡å¼ plt.ioff() # å¾å½¢æ¾ç¤º plt.show() return # three_dimension_scatter()