zoukankan      html  css  js  c++  java
  • matplotlib(4)-- 数据覆盖坐标轴时的相关处理、散点图scatter、条形图bar

     1 import matplotlib.pyplot as plt
     2 import numpy as np
     3 
     4 x = np.linspace(-3, 3, 50)
     5 y1 = 2 * x + 1
     6 
     7 #figure 1
     8 plt.figure()
     9 plt.plot(x, y1, linewidth = 10,zorder=1)
    10 
    11 
    12 #横纵坐标轴显示范围设置
    13 plt.xlim((-2, 2))
    14 plt.ylim((-10, 10))
    15 
    16 #坐标轴的移动 gca = “get current axis”
    17 ax = plt.gca()
    18 ax.spines["right"].set_color("none")
    19 ax.spines["top"].set_color("none")
    20 ax.xaxis.set_ticks_position("bottom")
    21 ax.yaxis.set_ticks_position("left")
    22 ax.spines["bottom"].set_position(("data", 0))   #Set the X and Y coordinates of the sprite simultaneously
    23 ax.spines["left"].set_position(("data", 0))
    24 
    25 #当出现数据覆盖坐标值的情况:
    26 
    27 #方法一:直接将plt.plot(x, y1, linewidth = 10)修改为plt.plot(x, y1, linewidth = 10,zorder=1)即可
    28 #方法二:将每一个坐标值取出来,作相关处理,使其覆盖在数据上,以达到可视化处理
    29 for label in ax.get_xticklabels() + ax.get_yticklabels():
    30     label.set_fontsize(10)
    31     label.set_zorder(1)
    32     label.set_bbox(dict(facecolor = "White", edgecolor = "None", alpha = 0.1))
    33 
    34 plt.show()
     1 import matplotlib.pyplot as plt
     2 import numpy as np
     3 
     4 n = 1024
     5 X = np.random.normal(0, 1, n)
     6 Y = np.random.normal(0, 1, n)
     7 T = np.arctan2(Y, X)
     8 
     9 #关于scatter的相关参数介绍,参考博文 https://blog.csdn.net/qiu931110/article/details/68130199
    10 plt.scatter(X, Y, s = 75, c = T, alpha = 0.5)
    11 
    12 plt.xlim((-1.5, +1.5))
    13 plt.ylim((-1.5, +1.5))
    14 
    15 plt.show()
     1 import matplotlib.pyplot as plt
     2 import numpy as np
     3 
     4 n = 1024
     5 X = np.random.normal(0, 1, n)
     6 Y = np.random.normal(0, 1, n)
     7 T = np.arctan2(Y, X)
     8 
     9 #关于scatter的相关参数介绍,参考博文 https://blog.csdn.net/qiu931110/article/details/68130199
    10 plt.scatter(X, Y, s = 75, c = T, alpha = 0.5)
    11 plt.xlim((-1.5, +1.5))
    12 plt.ylim((-1.5, +1.5))
    13 
    14 #将坐标标度隐藏
    15 plt.xticks(())
    16 plt.yticks(())
    17 
    18 plt.show()
     1 import matplotlib.pyplot as plt
     2 import numpy as np
     3 
     4 n = 12
     5 X = np.arange(n)
     6 Y1= (1 - X/float(n)) * np.random.uniform(0.5, 1.0, n)
     7 Y2= (1 - X/float(n)) * np.random.uniform(0.5, 1.0, n)
     8 
     9 #plt.bar()参数解释,参考博文 https://www.cnblogs.com/shine-rainbow/p/10742952.html
    10 #绘制条形图
    11 plt.bar(X, +Y1, facecolor = "#9999ff", edgecolor = "white")
    12 plt.bar(X, -Y2, facecolor = "#ff9999", edgecolor = "white")
    13 
    14 #text()参数解释
    15 #####################
    16 # plt.text(x, y, string, fontsize=15, verticalalignment="top", horizontalalignment="right")
    17 # 参数:
    18 # x,y:表示坐标值上的值
    19 # string:表示说明文字
    20 # fontsize:表示字体大小
    21 # verticalalignment:垂直对齐方式 ,参数:[ ‘center’ | ‘top’ | ‘bottom’ | ‘baseline’ ]
    22 # horizontalalignment:水平对齐方式 ,参数:[ ‘center’ | ‘right’ | ‘left’ ]
    23 
    24 for x,y in zip(X, Y1):
    25     plt.text(x, y, "%.2f"%y, ha = "center", va = "bottom")
    26 
    27 for x,y in zip(X, -Y2):
    28     plt.text(x, y, "%.2f"%y, ha = "center", va = "top")
    29 
    30 plt.xticks(())
    31 plt.yticks(())
    32 
    33 plt.show()
  • 相关阅读:
    巴洛克式和哥特式的区别
    推荐阅读书籍,是时候再行动起来了。
    AtCoder ABC 159F Knapsack for All Segments
    AtCoder ABC 159E Dividing Chocolate
    AtCoder ABC 158F Removing Robots
    AtCoder ABC 158E Divisible Substring
    AtCoder ABC 157F Yakiniku Optimization Problem
    AtCoder ABC 157E Simple String Queries
    AtCoder ABC 157D Friend Suggestions
    AtCoder ABC 156F Modularness
  • 原文地址:https://www.cnblogs.com/guoruxin/p/11248242.html
Copyright © 2011-2022 走看看