现在我有一个问题,就是我想让图片按照像素
# import scanpy as sc
# adata = sc.datasets.visium_sge("Targeted_Visium_Human_Glioblastoma_Pan_Cancer")
# sc.pp.calculate_qc_metrics(adata, inplace=True)
# sc.pl.spatial(adata, color="log1p_n_genes_by_counts")
import matplotlib.pyplot as plt
from matplotlib.patches import Circle
# 指定的位置和半径(以像素为单位)
x_pixel, y_pixel = 100, 200
radius_pixel = 50
# 创建一个新的图像,并获取它的Axes对象
my_dpi=100
fig, ax = plt.subplots(figsize=(600/my_dpi, 800/my_dpi), dpi=my_dpi,frameon=False)
# 创建一个圆形的Patch对象
circle = Circle((x_pixel, y_pixel), radius_pixel, color='blue')
# 在Axes对象上添加圆
ax.add_artist(circle)
ax.set_xlim(0, 300) # 设置x轴的范围
ax.set_ylim(0, 300) # 设置y轴的范围
ax.set_aspect('equal') # 确保x轴和y轴的比例相同
# 显示图像
plt.savefig("./ccc.png")
#plt.figure()
plt.show()
这里的做法和以前的不一样,之前的都是直接设置dpi,来控制图片的大小,但是现在的这个是直接通过这个图片的像素开控制图片大小