如何解决如何在matlibplot中自定义坐标轴 样本输出
我有两个点 p1=(0.86,0.5) & p2=(0.86,-0.5)
,我想使用 matlibplot 在其中绘制它们
所以我尝试了以下方法:
import matplotlib.pyplot as plt
p1=[0.86,0.5]
p2=[0.86,-0.5]
plt.scatter(p1[0],p1[1])
plt.scatter(p2[0],p2[1])
我得到以下结果:
但是,我想要的是根据坐标系在 p1 和 p2 之间旋转,使其看起来如下所示:
那么如何像上图那样调整坐标系?
解决方法
这不是正是您所追求的,而是应该让您了解如何实现所需的显示。重要的位是设置脊椎属性和刻度线的位置。您可以向轴添加刻度以“压缩”视图比例以匹配您的示例。我还提供了一个显示箭头的方法示例。
#! /usr/bin/env python3
# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
p1=[0.86,0.5]
p2=[0.86,-0.5]
# Create figure and subplot
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
# Plot data points
ax.scatter(p1[0],p1[1],color='blue')
ax.scatter(p2[0],p2[1],color='orange')
# Set limits for x and y axes
plt.xlim(-1,1)
plt.ylim(-1,1)
# ===== Important bits start here =====
# Set properties of spines
ax.spines['top'].set_color('none')
ax.spines['left'].set_position('zero')
ax.spines['right'].set_color('none')
ax.spines['bottom'].set_position('zero')
# Set axis tick positions
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
# Set specific tick locations
ax.set_xticks([-1,-0.5,0.5,1])
ax.set_yticks([-1,1])
# ===== End Of Important Bits =====
# Draw arrows
ax.arrow(0,p1[0],head_width=0.03,head_length=0.1,lw=1,fc='blue',ec='blue',length_includes_head=True)
ax.arrow(0,p2[0],fc='orange',ec='orange',length_includes_head=True)
plt.show()
样本输出
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。