• 售前

  • 售后

热门帖子
入门百科

python 绘制斜率图举行对比分析

[复制链接]
山风点烟捶 显示全部楼层 发表于 2021-10-26 12:56:44 |阅读模式 打印 上一主题 下一主题
你好,我是林骥。
斜率图,可以快速展现两组数据之间各维度的变革,特殊恰当用于对比两个时间点的数据。
好比说,为了对比分析某产物差异功能的用户满意度,颠末问卷调查和数据统计,得到下面这个调查效果:

你不妨自己先思考一下,怎样对这组数据进行可视化,才气让信息转达变得更加高效?
下面是我用 matplotlib 制作的图表:

从图中可以直观地看出,功能 C 的用户满意度明显降落,我们用比力光显的橙色来表示,以便引起观众重点关注;功能 D 和功能 E 的用户满意度明显提拔,我们用蓝色表示,代表数据正在向好的方向发展;功能 A 和功能 B 的用户满意度变革不大,我们用浅灰色表示,以便削弱观众对这两个功能的注意力,把更多的精神用于分析用户满意度明显降落的功能点,从而让图表起到提拔信息转达效率的目标。
下面是用 matplotlib 绘图的详细步调。

起首,导入所需的库,并设置中笔墨体和界说颜色等。
  1. # 导入所需的库
  2. import numpy as np
  3. import pandas as pd
  4. import matplotlib as mpl
  5. import matplotlib.pyplot as plt
  6. import matplotlib.image as image
  7. # 正常显示中文标签
  8. mpl.rcParams['font.sans-serif'] = ['SimHei']
  9. # 自动适应布局
  10. mpl.rcParams.update({'figure.autolayout': True})
  11. # 正常显示负号
  12. mpl.rcParams['axes.unicode_minus'] = False
  13. # 定义颜色,主色:蓝色,辅助色:灰色,互补色:橙色
  14. c = {'蓝色':'#00589F', '深蓝色':'#003867', '浅蓝色':'#5D9BCF',
  15.    '灰色':'#999999', '深灰色':'#666666', '浅灰色':'#CCCCCC',
  16.    '橙色':'#F68F00', '深橙色':'#A05D00', '浅橙色':'#FBC171'}
复制代码
其次,从 Excel 文件中读取随机模仿的数据,并界说绘图用的数据。
  1. # 数据源路径
  2. filepath='./data/问卷调查结果.xlsx'
  3. # 读取 Excel文件
  4. df = pd.read_excel(filepath, index_col='调查年度')
  5. # 定义画图用的数据
  6. category_names = df.columns
  7. labels = df.index
  8. data = df.values
  9. data_cum = data.cumsum(axis=1)
复制代码
接下来,开始用「面向对象」的方法进行绘图。
  1. # 使用「面向对象」的方法画图,定义图片的大小
  2. fig, ax=plt.subplots(figsize=(6, 6))
  3. # 设置背景颜色
  4. fig.set_facecolor('w')
  5. ax.set_facecolor('w')
  6. # 设置标题
  7. ax.set_title('\n用户满意度随时间的变化\n', fontsize=26, loc='left', color=c['深灰色'])
  8. # 定义颜色
  9. category_colors = [c['浅灰色'], c['浅灰色'], c['橙色'], c['蓝色'], c['蓝色']]
  10. # 画斜率图
  11. for i, color in zip(np.arange(len(df.columns)), category_colors):
  12.   ax.plot(df.index, df.iloc[:, i], marker='o', color=color)
  13.   # 设置数据标签及其文字颜色
  14.   ax.text(-0.03, df.iloc[0, i], df.columns[i] + ' ' + '{:.0%}'.format(df.iloc[0, i]), ha='right', va='center', color=color, fontsize=16)
  15.   ax.text(1.06, df.iloc[1, i], '{:.0%}'.format(df.iloc[1, i]), ha='left', va='center', color=color, fontsize=16)
  16. # 设置 Y 轴刻度范围
  17. ax.set_ylim(df.values.min()-0.02, df.values.max()+0.01)
  18. # 隐藏 Y 轴
  19. ax.yaxis.set_visible(False)
  20. # 隐藏边框
  21. ax.spines['top'].set_visible(False)
  22. ax.spines['right'].set_visible(False)
  23. ax.spines['left'].set_visible(False)
  24. ax.spines['bottom'].set_visible(False)
  25. # 隐藏 X 轴的刻度线
  26. ax.tick_params(axis='x', which='major', length=0)
  27. # 设置坐标标签字体大小和颜色
  28. ax.tick_params(labelsize=16, colors=c['灰色'])
  29. plt.show()
复制代码
运行之后,便得到上面那张图。
你可以前往 https://github.com/linjiwx/mp 下载绘图用的数据和完备代码。
对于同一组数据,差异的人可能会有差异的观察视角,对它们进行可视化,通常也存在多种差异的办理方案,这里介绍的方法,并不是唯一精确的答案。关键在于,图表的设计者想要表达什么信息?是否让观众精确且快速地明白了想要表达的信息?
差异范例的图表,有着差异的上风和劣势。
斜率图的上风,是能快速看到每个类别前后发生的变革,并能根据线条的陡峭程度,直观地感受到变革的幅度。
斜率图的劣势,是看不出整体与部分的占比关系。别的,假如类别的次序很紧张,那么也不恰当利用斜率图,由于类别会根据数值巨细自动进行排列。
末了,留给你一道思考题:在你看到过的各种数据中,有哪些数据是恰当用斜率图进行对比分析的?
当你不知道该选择什么范例的图表时,不妨停下来想一想,你盼望让观众相识什么或者做什么?
以上就是python 绘制斜率图进行对比分析的详细内容,更多关于python 对比分析的资料请关注草根技术分享其它相关文章!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作