101 lines
3.7 KiB
Python
101 lines
3.7 KiB
Python
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()
|