Python数据可视化

写在前面

思维方式比简单地画一个图更有意义。代码的最大意义在于可重复性,有图片需要修改的时候,就可以节省时间了。

3.2 Python可视化柱状图
理论介绍
柱状图是一种常用的数据可视化工具,用于展示各个类别之间的数量或比例关系。在科研论文中,柱状图通常用于比较不同组别之间的数据,揭示研究结果的分布、趋势或差异性。例如,可以用柱状图展示实验组和对照组之间的平均值比较、不同实验条件下的结果变化等。

科研论文中的用途

  • 比较不同组别的数据:柱状图可以直观地展示不同实验组之间的数据差异,帮助读者快速理解研究结果。
  • 分析数据趋势:通过柱状图可以观察到数据随着不同条件的变化而呈现的趋势,有助于对实验结果进行解释和讨论。
  • 展示显著性分析:柱状图可以结合显著性分析结果,标注不同组别之间的显著性差异,增强研究结果的可信度和说服力。

不同专业的应用场景

  • 生物医学:柱状图常用于展示不同药物治疗组和对照组之间的疗效比较,分析不同基因表达水平的差异等。
  • 经济学:柱状图可以用于展示不同国家或地区的经济指标,比如GDP、人均收入等,帮助研究者分析经济发展水平和差距。
  • 环境科学:柱状图可以用于展示不同地区或时间点的环境污染物浓度,分析环境质量的变化趋势和空间分布。
  • 农业科学:柱状图可以用于展示不同农作物品种的产量比较,分析不同施肥方案对作物生长的影响等。
  • 营养学; 柱状图可以用于展示不同食物中营养成分的含量比较,分析不同饮食结构对健康的影响等。

Python代码实现

示例一:简单柱状图

import matplotlib.pyplot as plt

# 数据
categories = ['Group A', 'Group B', 'Group C', 'Group D']
values = [30, 45, 60, 25]

# 创建柱状图
plt.bar(categories, values, color='skyblue', edgecolor='black')

# 添加标题和标签
plt.title('Comparison of Groups', fontsize=16, fontweight='bold')
plt.xlabel('Groups', fontsize=12)
plt.ylabel('Values', fontsize=12)

# 调整字体大小
plt.xticks(fontsize=10)
## ([0, 1, 2, 3], [Text(0, 0, 'Group A'), Text(1, 0, 'Group B'), Text(2, 0, 'Group C'), Text(3, 0, 'Group D')])
plt.yticks(fontsize=10)
## (array([ 0., 10., 20., 30., 40., 50., 60., 70.]), [Text(0, 0.0, '0'), Text(0, 10.0, '10'), Text(0, 20.0, '20'), Text(0, 30.0, '30'), Text(0, 40.0, '40'), Text(0, 50.0, '50'), Text(0, 60.0, '60'), Text(0, 70.0, '70')])
# 显示图例
plt.legend(['Values'], loc='upper right', fontsize=10)

# 调整图形大小和分辨率
plt.gcf().set_size_inches(8, 6)
plt.gcf().set_dpi(300)

# 显示柱状图
plt.show()

图片

示例二:带有SD标记的柱状图

import matplotlib.pyplot as plt
import numpy as np
from scipy.stats import ttest_ind

# 生成数据
low_concentration = [12, 15, 20, 13, 13]
medium_concentration = [40, 48, 52, 47, 42]
high_concentration = [60, 62, 68, 63, 68]


# 创建柱状图
bars = plt.bar(['Low Concentration', 'Medium Concentration', 'High Concentration'],
        [np.mean(low_concentration), np.mean(medium_concentration), np.mean(high_concentration)],
        color=['skyblue', 'lightgreen', 'salmon'], edgecolor='black')

# 添加方差标注
plt.errorbar(['Low Concentration', 'Medium Concentration', 'High Concentration'],
             [np.mean(low_concentration), np.mean(medium_concentration), np.mean(high_concentration)],
             yerr=[np.std(low_concentration), np.std(medium_concentration), np.std(high_concentration)],
             fmt='none', capsize=5, color='black')

# 添加标题和标签
plt.title('Comparison of Concentrations', fontsize=16, fontweight='bold')
plt.xlabel('Concentration', fontsize=12)
plt.ylabel('Values', fontsize=12)

# 调整字体大小
plt.xticks(fontsize=10)
## ([0, 1, 2], [Text(0, 0, 'Low Concentration'), Text(1, 0, 'Medium Concentration'), Text(2, 0, 'High Concentration')])
plt.yticks(fontsize=10)
## (array([ 0., 10., 20., 30., 40., 50., 60., 70., 80.]), [Text(0, 0.0, '0'), Text(0, 10.0, '10'), Text(0, 20.0, '20'), Text(0, 30.0, '30'), Text(0, 40.0, '40'), Text(0, 50.0, '50'), Text(0, 60.0, '60'), Text(0, 70.0, '70'), Text(0, 80.0, '80')])
# 创建自定义图例
legend_handles = [plt.Rectangle((0,0),1,1, color='skyblue', ec='black'),
                  plt.Rectangle((0,0),1,1, color='lightgreen', ec='black'),
                  plt.Rectangle((0,0),1,1, color='salmon', ec='black')]

# 添加显著性标注的图例项
legend_labels = ['Low Concentration', 'Medium Concentration', 'High Concentration']

# 显示图例
plt.legend(legend_handles, legend_labels, loc='upper left', fontsize=10)

# 显示柱状图
plt.show()

图片

小结

柱状图是一种简单直观的数据可视化工具,适用于展示不同组别之间的数据比较和分析。在科研论文中,柱状图常用于展示实验结果的差异性、趋势性和显著性分析,有助于读者理解研究结论和推论。通过掌握柱状图的绘制方法和应用技巧,可以更好地展示研究结果,提高论文的可读性和说服力。

原创文章,作者:guozi,如若转载,请注明出处:https://www.sudun.com/ask/87962.html

(0)
guozi's avatarguozi
上一篇 2024年6月3日 下午3:29
下一篇 2024年6月3日 下午3:30

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注