在R ggplot2中基于导入数据设置坐标轴并绘制双数据集图
单X轴单Y轴绘制两组数据并标注特定点
嘿,我完全get到你的需求了——你要的是单X轴+单Y轴的常规绘图,不是那些教程里讲的双Y轴场景,这个其实比双Y轴简单多啦!下面我用Python最常用的Matplotlib库给你写个可直接复用的示例,你一看就懂:
步骤1:导入绘图库
import matplotlib.pyplot as plt
步骤2:准备你的数据
这里我模拟了和你描述匹配的数据范围,你直接替换成自己的真实数据就行:
# set1:X轴数据,范围0-100 set1 = [5, 20, 35, 50, 65, 80, 95] # set2:Y轴数据,范围0-1 set2 = [0.15, 0.38, 0.09, 0.67, 0.29, 0.88, 0.47] # 要标注的点集合:每个点包含对应的X值、Y值和标签 annotation_points = [ {"x": 20, "y": 0.38, "label": "foo"}, {"x": 50, "y": 0.67, "label": "bar"}, {"x": 80, "y": 0.88, "label": "spa"} ]
步骤3:绘制图形并添加标注
# 创建画布和轴对象 fig, ax = plt.subplots(figsize=(8, 5)) # 绘制数据点:这里用散点图举例,如果你要画折线图,把scatter换成plot即可 ax.scatter(set1, set2, color='#1f77b4', s=60, label='Dataset') # 逐个添加标注点 for point in annotation_points: # annotate函数用来添加文本标注,xy是目标点坐标,xytext是文本偏移位置 ax.annotate( point["label"], xy=(point["x"], point["y"]), xytext=(point["x"] + 4, point["y"] + 0.06), # 可根据实际情况调整偏移量 arrowprops=dict(arrowstyle='->', color='#ff4b5c', lw=1.2), # 箭头样式 fontweight='bold' ) # 设置轴标签和标题 ax.set_xlabel('set1 (Range: 0-100)', fontsize=12) ax.set_ylabel('set2 (Range: 0-1)', fontsize=12) ax.set_title('Single X-Y Axis Plot with Custom Annotations', fontsize=14, pad=15) # 添加图例和网格 ax.legend() ax.grid(alpha=0.3) # 显示图形 plt.show()
关键说明
这个方案的核心就是直接将set1绑定到X轴、set2绑定到Y轴,完全不需要配置双Y轴。不管你用散点图、折线图还是其他类型的图,只要把x参数设为set1,y参数设为set2就行。标注点的逻辑和你已知的方法一致,用annotate函数逐个添加即可。
如果用的是Seaborn这类高层库,思路也是一样的:比如用sns.scatterplot(x=set1, y=set2)绘制主图,再用plt.annotate添加标注点,操作逻辑完全通用。
内容的提问来源于stack exchange,提问作者Liquidity
相关产品推荐
相关产品推荐

