这篇文章主要介绍“Excel的数据可视化和Python有什么不同”,在日常操作中,相信很多人在Excel的数据可视化和Python有什么不同问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Excel的数据可视化和Python有什么不同”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
效果预览比较
流畅丝滑,仿佛生命的跃动。
Python版
图样图森破,不落下风,对老表哥而言还带有一种亲切感。
以数据用例来说明,=OFFSET(A1,5,2,3,1) 即表示从 A1 单元格开始,下移 5 格,右移 2 格,再向下选取 3 个,注意:最后的 1 表示选择这一列而不是向右多选一列。
据此,可以预想动态图需要用到的数据,就是用 OFFSET 返回的区域作为折线图的系列值。
但如果想要动态地修改 OFFSET 返回区域,还需要将其偏移、选取相关的参数绑定到单元格,通过修改单元格的值,来修改函数内部参数。故先设置 F2 、G2 两个单元格分别为下移量和下取量,起始位置选择 C1 即可,如此选取日产能值时就无需右移和右取。
右键滑块设置控件格式,即可通过滑块来修改单元格的值。
添加一个名称为“日产能A厂”,其引用位置为 =OFFSET(Sheet1!$C$1,Sheet1!$F$2, ,Sheet1!$G$2, ),省略的两个参数默认值分别为 0 和 1,如此即可通过滑块调整获得日产能值的区域。
再添加一个日期段,用作折线图的X轴
右键选择数据,添加Y轴数据。
在右侧水平轴标签编辑X轴,填写之前设置的名称。
如果想以每 7 天为一个周期,查看每个周期的数据,还可以设置起始日滑块的步长为 7,然后修改跨度当前值为 7 。
如果想要像效果预览图中那样自动播放该怎么做呢?答案是使用 VBA 。再从表单控件中选择一个按钮,右键该按钮后选择指定宏,点击新建,开始编辑 VBA 代码。
P版样例图的实现见以下代码,具体可参考笔者的另一篇《程序员的求生欲:用python给女友一个七夕惊喜二维码吧》,其中以动态条形图为例,详细说明了制图思路和完整的实现过程(以及其他加料技巧)。
import matplotlib.pyplot as plt import matplotlib.animation as ani import pandas as pd import datetime df = pd.read_excel(r"D:\动态折线图数据样例.xlsx") # 读取原始数据 t = datetime.datetime(2020,7,1) # 起始日期 fig = plt.figure(figsize=(10,6)) # 画布 plt.rcParams["font.sans-serif"] = ["Microsoft YaHei"] # 字体设为微软雅黑 timeSlot = list(range(1,63)) + [62]*20 # 时间轴 items = ["A厂", "SSS能源", "XX重工"] # 单位列表 colors = ["#6495ED", "#FF8C00", "#B0C4DE"] # 颜色列表 def draw(date): # 数据处理 ------ date_list = [] # 需绘制的日期段 for d in range(date): date_list.append(t + datetime.timedelta(days=d)) current_date = t + datetime.timedelta(days=date) # 最新一天 _df = df[df["日期"]<current_date ] # 获取最新一天前所有数据 # 绘制折线图 ------ fig.clear() # 每次重绘时清空画布 plt.title("0701-0831各单位产能变化", fontsize=20) # 标题 ax = plt.gca() # 坐标轴对象 ax.spines['right'].set_color('none') # 隐藏右边框 ax.spines['top'].set_color('none') # 隐藏上边框 for i,v in enumerate(items): data = _df[_df["单位"] == v]["日产能"] # 获取某单位某日产能值 plt.plot(date_list, data , color=colors[i]) # 绘制折线 plt.plot(date_list[-1], list(data)[-1], color=colors[i], marker='o', markersize = 10) # 设置最后一个节点样式 plt.text(date_list[-1], list(data)[-1] + 1, v, ha='center', va='bottom', fontsize=12) # 为最后一个节点添加数据标签 # draw(62) animator = ani.FuncAnimation(fig, draw, frames=timeSlot ,interval = 50) plt.show() # animator.save('test.gif',fps=20)
结果:
到此,关于“Excel的数据可视化和Python有什么不同”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。