JupiterD 2017-11-16 09:36 采纳率: 0%
浏览 1749
已结题

关于Python matplotlib的制图问题

为什么x,y坐标中的标签不会半透明呢,教程中的图片如图图片说明
但是实际的图片是这样的
图片说明
为什么我的没有半透明的背景呢
代码如下:

#!python3
# coidng="utf-8"

import matplotlib.pyplot as plt
import numpy as np

if __name__ == "__main__":
        X = np.linspace(-np.pi, np.pi, 256, endpoint=True)
    S, Y = np.sin(X), X
    plt.figure(figsize=(10, 6), dpi=80)
    plt.subplot(111)
    plt.xlim(-np.pi * 1.1, np.pi * 1.1)
    plt.ylim(min(Y) * 1.1, max(Y) * 1.1)
    plt.xticks([-np.pi, -np.pi / 2, 0, np.pi / 2, np.pi],
               [r"$-\pi$", r"$-\pi/2$", r"$0$", r"$+\pi/2$", r"$+\pi$"])
    plt.yticks([-np.pi, -np.pi / 2, 0, np.pi / 2, np.pi],
               [r"$-\pi$", r"$-\pi/2$", r"$0$", r"$+\pi/2$", r"$+\pi$"])
    ax = plt.gca()
    ax.spines["top"].set_color("none")
    ax.spines["right"].set_color("none")
    ax.xaxis.set_ticks_position("bottom")
    ax.yaxis.set_ticks_position("left")
    ax.spines["bottom"].set_position(["data", 0])
    ax.spines["left"].set_position(["data", 0])
    for each in ax.get_xticklabels() + ax.get_yticklabels():
        each.set_fontsize(16)
        each.set_bbox(dict(facecolor="white", edgecolor="None", alpha=0.65))
    plt.plot(X, S, linewidth=2.5, color="blue", linestyle="-")
    plt.plot(X, Y, linewidth=2.5, color="red", linestyle="-")
    t = np.pi / 2
    plt.plot([t, t], [0, 1], linewidth=1.5, color="blue", linestyle="--")
    plt.plot([0, t], [1, 1], linewidth=1.5, color="blue", linestyle="--")
    plt.scatter([t, ], [1, ], 50, color="blue")
    plt.plot([-t, -t], [0, -t], linewidth=1.5, color="red", linestyle="--")
    plt.plot([0, -t], [-t, -t], linewidth=1.5, color="red", linestyle="--")
    plt.scatter([-t, ], [-t, ], 50, color="red")
    plt.annotate(r"$\sin(\frac{\pi}{2})=1$", xy=(t, 1), xycoords="data", xytext=(+10, +20),
                 textcoords="offset points", fontsize=16,
                 arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2"))
    plt.annotate(r"$(\frac{-\pi}{2},\frac{-\pi}{2})$", xy=(-t, -t), xycoords="data", xytext=(+10, -20),
                 textcoords="offset points", fontsize=16,
                 arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2"))
    plt.savefig(r'C:\Users\rengz\Desktop\exercice_7.png')
    plt.show()

附图

图片说明

  • 写回答

1条回答

  • weixin_41843631 2018-08-10 22:58
    关注

    for label in ax.get_xticklabels() + ax.get_yticklabels():

    label.set_fontsize(12)
    
    # set zorder for ordering the plot in plt 2.0.2 or higher
    
    label.set_bbox(dict(facecolor='white', edgecolor='none', alpha=0.8, zorder=2))
    

    plt.show()

    bbox设置目的内容的透明度相关参,facecolor调节 box 前景色,edgecolor 设置边框, 本处设置边框为无,alpha设置透明度.

    评论

报告相同问题?

悬赏问题

  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法