文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python如何绘制斜率图进行对比分析

2023-06-14 06:21

关注

这篇文章将为大家详细讲解有关python如何绘制斜率图进行对比分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

斜率图,可以快速展现两组数据之间各维度的变化,特别适合用于对比两个时间点的数据。

比如说,为了对比分析某产品不同功能的用户满意度,经过问卷调查和数据统计,得到下面这个调查结果:

python如何绘制斜率图进行对比分析

你不妨自己先思考一下,如何对这组数据进行可视化,才能让信息传递变得更加高效?

下面是我用 matplotlib 制作的图表:

python如何绘制斜率图进行对比分析

从图中可以直观地看出,功能 C 的用户满意度明显下降,我们用比较鲜明的橙色来表示,以便引起观众重点关注;功能 D 和功能 E 的用户满意度明显提升,我们用蓝色表示,代表数据正在向好的方向发展;功能 A 和功能 B 的用户满意度变化不大,我们用浅灰色表示,以便削弱观众对这两个功能的注意力,把更多的精力用于分析用户满意度明显下降的功能点,从而让图表起到提升信息传递效率的目的。

下面是用 matplotlib 画图的详细步骤。

首先,导入所需的库,并设置中文字体和定义颜色等。

# 导入所需的库import numpy as npimport pandas as pdimport matplotlib as mplimport matplotlib.pyplot as pltimport matplotlib.image as image# 正常显示中文标签mpl.rcParams['font.sans-serif'] = ['SimHei']# 自动适应布局mpl.rcParams.update({'figure.autolayout': True})# 正常显示负号mpl.rcParams['axes.unicode_minus'] = False# 定义颜色,主色:蓝色,辅助色:灰色,互补色:橙色c = {'蓝色':'#00589F', '深蓝色':'#003867', '浅蓝色':'#5D9BCF',   '灰色':'#999999', '深灰色':'#666666', '浅灰色':'#CCCCCC',   '橙色':'#F68F00', '深橙色':'#A05D00', '浅橙色':'#FBC171'}

其次,从 Excel 文件中读取随机模拟的数据,并定义画图用的数据。

# 数据源路径filepath='./data/问卷调查结果.xlsx'# 读取 Excel文件df = pd.read_excel(filepath, index_col='调查年度')# 定义画图用的数据category_names = df.columnslabels = df.indexdata = df.valuesdata_cum = data.cumsum(axis=1)

接下来,开始用「面向对象」的方法进行画图。

# 使用「面向对象」的方法画图,定义图片的大小fig, ax=plt.subplots(figsize=(6, 6))# 设置背景颜色fig.set_facecolor('w')ax.set_facecolor('w')# 设置ax.set_title('\n用户满意度随时间的变化\n', fontsize=26, loc='left', color=c['深灰色'])# 定义颜色category_colors = [c['浅灰色'], c['浅灰色'], c['橙色'], c['蓝色'], c['蓝色']]# 画斜率图for i, color in zip(np.arange(len(df.columns)), category_colors):  ax.plot(df.index, df.iloc[:, i], marker='o', color=color)  # 设置数据标签及其文字颜色  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)  ax.text(1.06, df.iloc[1, i], '{:.0%}'.format(df.iloc[1, i]), ha='left', va='center', color=color, fontsize=16)# 设置 Y 轴刻度范围ax.set_ylim(df.values.min()-0.02, df.values.max()+0.01)# 隐藏 Y 轴ax.yaxis.set_visible(False)# 隐藏边框ax.spines['top'].set_visible(False)ax.spines['right'].set_visible(False)ax.spines['left'].set_visible(False)ax.spines['bottom'].set_visible(False)# 隐藏 X 轴的刻度线ax.tick_params(axis='x', which='major', length=0)# 设置坐标标签字体大小和颜色ax.tick_params(labelsize=16, colors=c['灰色'])plt.show()

运行之后,便得到上面那张图。

你可以前往 https://github.com/linjiwx/mp 下载画图用的数据和完整代码。

对于同一组数据,不同的人可能会有不同的观察视角,对它们进行可视化,往往也存在多种不同的解决方案,这里介绍的方法,并不是唯一正确的答案。关键在于,图表的设计者想要表达什么信息?是否让观众正确且快速地理解了想要表达的信息?

不同类型的图表,有着不同的优势和劣势。

斜率图的优势,是能快速看到每个类别前后发生的变化,并能根据线条的陡峭程度,直观地感受到变化的幅度。

斜率图的劣势,是看不出整体与部分的占比关系。另外,如果类别的顺序很重要,那么也不适合使用斜率图,因为类别会根据数值大小自动进行排列。

关于“python如何绘制斜率图进行对比分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯