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 gwas 分析-数据质控之过滤稀有突变中出现的问题
  • ¥15 没有注册类 (异常来自 HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))
  • ¥15 知识蒸馏实战博客问题
  • ¥15 用PLC设计纸袋糊底机送料系统
  • ¥15 simulink仿真中dtc控制永磁同步电机如何控制开关频率
  • ¥15 用C语言输入方程怎么
  • ¥15 网站显示不安全连接问题
  • ¥15 51单片机显示器问题
  • ¥20 关于#qt#的问题:Qt代码的移植问题
  • ¥50 求图像处理的matlab方案