加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
python_visual_animation.py 3.60 KB
一键复制 编辑 原始数据 按行查看 历史
xianhu 提交于 2017-11-23 10:59 . add python_visual_animation.py
# _*_ 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()
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化