plt子图原点坐标轴设置
时间: 2023-11-14 09:16:18 浏览: 216
可以通过plt.subplots()函数中的参数来设置子图的原点坐标轴,例如:
```python
import matplotlib.pyplot as plt
fig, ax = plt.subplots(nrows=2, ncols=2, sharex=True, sharey=True, figsize=(8, 8))
# 设置左下角子图的原点坐标轴
ax[1, 0].spines['bottom'].set_position(('data', 0))
ax[1, 0].spines['left'].set_position(('data', 0))
plt.show()
```
其中,ax[1, 0]表示左下角的子图,spines是坐标轴的边框线,'data'表示以数据为基准,0表示原点位置。可以根据需要设置其他子图的坐标轴。
相关问题
anaconda:显示第一题的坐标轴,将右侧和上方坐标轴隐藏,将圆心置于(1,1)点,将坐标轴交点置于(0,0),坐标轴轴脊蓝色。
如果你想要改变之前代码中圆心的位置并控制坐标轴的可见性,你可以这样做:
```python
import matplotlib.pyplot as plt
import numpy as np
# 创建一个新的图形
fig = plt.figure(figsize=(8, 6))
# 定义圆心位置和半径
circle_center = (1, 1)
circle_radius = 10
# 添加子图,保留x轴,隐藏y轴和右边和上边的坐标轴
ax = fig.add_subplot(1, 1, 1, axisbelow=True) # set axisbelow=True让网格线在数据线下方
ax.spines['top'].set_visible(False) # 隐藏上边的轴
ax.spines['right'].set_visible(False) # 隐藏右边的轴
ax.xaxis.tick_bottom() # 只显示底部x轴
ax.yaxis.tick_left() # 只显示左边y轴
# 创建并绘制圆
circle = plt.Circle(circle_center, circle_radius, facecolor='yellow', edgecolor='blue')
ax.add_artist(circle)
# 设置原点坐标
ax.plot(0, 0, 'ro') # 在(0,0)处添加红点表示坐标轴交点
ax.set_xlim([-circle_radius, circle_radius])
ax.set_ylim([-circle_radius, circle_radius])
# 显示图形
plt.show()
matplotlib在画布上添加一个子图,距画布四边均为10%,在子图内绘制一个半径为10的正圆形,外框为蓝色,填充为黄色,将坐标轴焦点置于(0,0),坐标轴轴脊为蓝色
在matplotlib中,你可以使用`subplots()`函数创建一个新的子图,并调整其位置和大小。然后,可以使用`Circle`从`matplotlib.patches`模块绘制圆,设置相应的颜色和填充。接下来,我们将展示如何完成这个任务:
首先,导入必要的库:
```python
import matplotlib.pyplot as plt
from matplotlib.patches import Circle
```
创建一个画布,其中子图位于左下角并占总宽度和高度的90%:
```python
fig = plt.figure(figsize=(8, 6)) # 创建一个默认大小的图形
left = bottom = 0.10 # 子图距离各边10%
right = top = 0.90 # 子图占总空间的90%
# 创建子图
ax = fig.add_axes([left, bottom, right - left, top - bottom]) # [左, 底, 宽度, 高度]
```
接着,在子图上绘制一个半径为10、外框蓝色、填充黄色的正圆形:
```python
circle = Circle((0, 0), radius=10, color='blue', fill=False) # 圆心在原点(0, 0),外框色蓝,填充色黄
ax.add_patch(circle)
```
最后,设置坐标轴的焦点和轴脊:
```python
ax.set_xlim(-10, 10) # 调整x轴范围
ax.set_ylim(-10, 10) # 调整y轴范围
ax.set_axis_off() # 关闭坐标轴
ax.set_facecolor('none') # 清除子图背景色
```
完整代码示例:
```python
import matplotlib.pyplot as plt
from matplotlib.patches import Circle
plt.style.use('_mpl-gallery-nogrid')
fig = plt.figure(figsize=(8, 6))
left = bottom = 0.10
right = top = 0.90
ax = fig.add_axes([left, bottom, right - left, top - bottom])
circle = Circle((0, 0), radius=10, color='blue', fill=False)
ax.add_patch(circle)
ax.set_xlim(-10, 10)
ax.set_ylim(-10, 10)
ax.set_axis_off()
ax.set_facecolor('none')
plt.show()
阅读全文