跟着高分SCI学画图:GPT教你绘制哑铃图
哑铃图(Dumbbell Plot),也称为双端点图,是一种用于比较两个时间点或两个不同组的数据的可视化图表。它通过在图表上显示两个点并用线连接这两个点,从而展示数据在两个时间点之间的变化或对比。
哑铃图的特点
双点显示:每个类别有两个数据点,通常是两个不同时间点的数值(如起始和结束值),这两个点通过线连接。 清晰的对比:通过在同一图表中展示两个点,能够清晰地对比它们之间的变化或差异。 排序:通常,哑铃图会根据其中一个数据点(通常是终点数据)对类别进行排序,从而使得变化更为直观。
哑铃图的优点
直观的对比:能够直观地展示两个时间点或两个组之间的差异,方便观察数据的变化趋势。 清晰的数据变化:通过线条连接两个数据点,可以清晰地看到数据的变化幅度。 易于理解:由于使用了直观的线条和点,哑铃图通常容易被观众理解,尤其是当比较的数据变化幅度较大时。 适用于对比:适合用于对比同一组数据在不同条件下的表现,例如起始值和结束值、不同时间点的数据等。
哑铃图的缺点
视觉拥挤:当数据类别较多时,哑铃图可能会变得视觉拥挤,难以区分不同类别的数据点和线条。 数据点重复:对于每个类别,哑铃图显示的是两个点,可能会导致信息的冗余,特别是当变化幅度较小时。 不适合所有类型的数据:哑铃图主要适用于对比两个数值点的变化,对于更复杂的多维数据可能不够有效。 排序问题:为了增强可读性,通常需要对数据进行排序,这可能会导致某些数据点的相对位置发生变化,影响对数据变化的直观感知。
应用场景
时间序列对比:适用于对比同一数据在不同时间点的变化。 前后对比:用于展示某个措施或干预前后的效果,例如政策实施前后的变化。 不同组对比:比较两个不同组的数据表现,例如实验组与对照组的差异。
导入环境
import pandas as pd
import matplotlib.pyplot as plt
数据准备
# 生成数据
data = {
'School': ['Yale', 'UCLA', 'U.Penn', 'Tufts', 'Stanford', 'SoCal', 'Princeton', 'NYU', 'Notre Dame', 'MIT',
'Michigan', 'Harvard', 'Georgetown', 'Emory', 'Duke', 'Dartmouth', 'Cornell', 'Columbia', 'Chicago',
'Brown', 'Berkeley'],
'Start Salary': [75, 85, 128, 103, 95, 101, 97, 109, 89, 100, 83, 97, 102, 111, 91, 112, 109, 99, 111, 86, 79],
'Mid Career Salary': [80, 92, 132, 109, 100, 98, 101, 110, 98, 95, 91, 100, 101, 136, 72, 90, 90, 102,
109, 92, 99]
}
df = pd.DataFrame(data)
df = df.sort_values('Mid Career Salary') # Sorting by Mid Career Salary for better visual alignment
绘图
# 开始绘制哑铃图
fig, ax = plt.subplots(figsize=(10, 8))
# 绘制哑铃图的线
for i, row in df.iterrows():
ax.plot([row['Start Salary'], row['Mid Career Salary']], [row['School'], row['School']], color='grey', linewidth=2)
# 绘制哑铃图的点
ax.scatter(df['Start Salary'], df['School'], color='red', s=100, label='Start Salary')
ax.scatter(df['Mid Career Salary'], df['School'], color='black', s=100, label='Mid Career Salary')
ax.scatter(df['Start Salary'], df['School'], color='blue', s=100, label='Start Salary')
绘制左边的点并将其标为 'Start Salary'ax.scatter(df['Mid Career Salary'], df['School'], color='black', s=100, label='Mid Career Salary')
绘制右边的点并将其标为 ‘Mid Career Salary’
添加图标
# 添加题目
ax.set_xlabel('Annual Salary (in thousands)')
ax.set_ylabel('School')
ax.set_title('Comparison of Start and Mid Career Salaries by School')
# 添加图标
ax.legend()
plt.tight_layout()
plt.show()
ax.set_xlabel('Annual Salary (in thousands)')
将X轴命名为 ’Annual Salary (in thousands)‘ax.set_ylabel('School')
将Y轴命名为 ’School‘ax.set_title('Comparison of Start and Mid Career Salaries by School')
将整个图表的题目标为 ’Comparison of Start and Mid Career Salaries by School‘
拓展
改变哑铃图两点的颜色
想要更换哑铃图两个点的颜色,我们不需要改变导入环境;准备数据和添加图标,我们只需要改变绘图部分的一行:
绘图
# 绘制哑铃图
fig, ax = plt.subplots(figsize=(10, 8))
...
...
# 绘制哑铃图的点
ax.scatter(df['Start Salary'], df['School'], color='blue', s=100, label='Start Salary')
ax.scatter(df['Mid Career Salary'], df['School'], color='green', s=100, label='Mid Career Salary')
使用虚线
想要使用虚线代替哑铃图中的实线,我们不需要改变导入环境;准备数据和添加图标,我们也只需要改变绘图部分的一行:
# 绘制哑铃图
fig, ax = plt.subplots(figsize=(10, 8))
# 绘制线图
for i, row in df.iterrows():
ax.plot([row['Start Salary'], row['Mid Career Salary']], [row['School'], row['School']], color='grey', linewidth=2,, linestyle='--')
...
...
本文作者:徐可
现在:
长按扫码关注:科研生信充电宝
10元赞赏本文,即喜欢作者~
即可直接解锁:
《跟着高分SCI学画图:GPT教你绘制哑铃图》对应资源哦~
看到这里你还不心动吗?
赶紧关注、转发、点赞、分享,领取你的专属福利吧~
好啦,以上就是今天推文的全部内容啦!
版权声明:本文内容由互联网用户自发贡献,版权归作者所有,本公众号不拥有所有权,也不承担相关法律责任。
如果您发现本公众号中有涉嫌抄袭的内容,欢迎发送邮件至:kysxcdb@163.com 进行举报,一经查实,本公众号将立刻删除涉嫌侵权内容。