import matplotlib from plot_data import * import matplotlib.pyplot as plt import matplotlib.ticker as mticker matplotlib.use("Qt5Agg") # 解决中文乱码 plt.rcParams["font.sans-serif"] = ["simsun"] plt.rcParams["font.family"] = "sans-serif" # plt.rcParams["font.weight"] = "bold" # 解决负号无法显示的问题 plt.rcParams["axes.unicode_minus"] = False plt.rcParams["savefig.dpi"] = 1200 # 图片像素 # plt.savefig("port.png", dpi=600, bbox_inches="tight") fontsize = 12 ################################################ witdh_of_bar=0.3 color=plt.cm.BuPu(np.linspace(152/255, 251/255,152/255)) percent1 = data_150m塔高_不同地线保护角[:, 1] / data_150m塔高_不同地线保护角[:, 0] # percent1 = data_66m串长_不同塔高[:, 1] / data_66m串长_不同塔高[:, 0] # percent2 = data_68m串长_不同塔高[:, 1] / data_68m串长_不同塔高[:, 0] fig, ax = plt.subplots() x = np.arange(len(category_names_150m塔高_不同地线保护角)) # the label locations p1 = ax.bar(category_names_150m塔高_不同地线保护角, percent1, witdh_of_bar, label="绕击/反击跳闸率比值",color=color,hatch='-') # p1 = ax.bar(x - 0.3 / 2, percent1, 0.3, label="6.6m绝缘距离") # p2 = ax.bar(x + 0.3 / 2, percent2, 0.3, label="6.8m绝缘距离") ax.xaxis.set_major_locator(mticker.FixedLocator(x)) ax.set_xticklabels(category_names_150m塔高_不同地线保护角) ax.set_ylabel("比值", fontsize=fontsize) ax.set_xlabel("地线保护角(°)", fontsize=fontsize) # ax.set_xlabel("接地电阻(Ω)", fontsize=fontsize) plt.xticks(fontsize=fontsize) plt.yticks(fontsize=fontsize) ax.bar_label(p1, padding=0, fontsize=fontsize) # ax.bar_label(p2, padding=0, fontsize=fontsize) ax.legend(fontsize=fontsize) fig.tight_layout() plt.show() # results = { # "100m": 100 * data[0, :] / np.sum(data[0, :]), # "110m": data[1, :] / np.sum(data[1, :]), # "120m": data[2, :] / np.sum(data[2, :]), # "130m": data[3, :] / np.sum(data[3, :]), # "140m": data[4, :] / np.sum(data[4, :]), # "150m": data[5, :] / np.sum(data[5, :]), # } # def survey(results, category_names): # """ # Parameters # ---------- # results : dict # A mapping from question labels to a list of answers per category. # It is assumed all lists contain the same number of entries and that # it matches the length of *category_names*. # category_names : list of str # The category labels. # """ # labels = list(results.keys()) # data = np.array(list(results.values())) # data_cum = data.cumsum(axis=1) # category_colors = plt.get_cmap("RdYlGn")(np.linspace(0.15, 0.85, data.shape[1])) # # fig, ax = plt.subplots(figsize=(9.2, 5)) # ax.invert_yaxis() # ax.xaxis.set_visible(False) # ax.set_xlim(0, np.sum(data, axis=1).max()) # # for i, (colname, color) in enumerate(zip(category_names, category_colors)): # widths = data[:, i] # starts = data_cum[:, i] - widths # rects = ax.barh( # labels, widths, left=starts, height=0.5, label=colname, color=color # ) # # r, g, b, _ = color # text_color = "white" if r * g * b < 0.5 else "darkgrey" # ax.bar_label(rects, label_type="center", color=text_color) # ax.legend( # ncol=len(category_names), # bbox_to_anchor=(0, 1), # loc="lower left", # fontsize="small", # ) # # return fig, ax # percent=data/np.sum(data,axis=1)[:,None]*100 # percent = data[:, 1] / data[:, 0] # plt.bar(category_names, percent, 0.3, label="黑") # # plt.bar(category_names, percent[:,0], 0.2, label="r") # # # plt.bar(category_names, [0.014094 / 100, 0.025094 / 100], 0.2, label="h") # plt.legend() # # survey(results, category_names) # plt.show()