Font ‘default‘ does not have a glyph for ‘-‘ [U+2212], substituting with a d简单解决问题

在使用matplotlib绘制图表时,遇到字体SimHei无法显示负号的问题。通过修改配置,将`font.sans-serif`从'SimHei'更改为'MicrosoftYaHei',并设置`axes.unicode_minus`为False,成功解决了负号显示异常的状况。这是一个简单的记录,以备后用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Font 'default' does not have a glyph for '-' [U+2212], substituting with a d

import matplotlib.pyplot as plt
问题就是plt.rcParams['font.sans-serif'] = ['SimHei']# 用来正常显示中文标签

plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号

其实['SimHei']就是这个不行, 把['SimHei']改成['Microsoft YaHei']  就可以了

自己踩了坑,其实就这么简单,做个记录

import numpy as np from matplotlib import pyplot as plt import scapy.all as scapy from collections import defaultdict from sklearn.preprocessing import StandardScaler from sklearn.cluster import KMeans from sklearn.metrics import silhouette_score import pandas as pd # ====================== # 1. PCAP文件解析与流重组 # ====================== print("正在解析PCAP文件...") packets = scapy.rdpcap('test.pcap') # 按五元组重组网络流 flows = defaultdict(list) for pkt in packets: if 'IP' in pkt: # 获取协议类型 (TCP=6, UDP=17, ICMP=1) proto = pkt['IP'].proto src_port = pkt[proto].sport if proto in pkt else 0 dst_port = pkt[proto].dport if proto in pkt else 0 # 创建流标识键 (源IP, 目的IP, 源端口, 目的端口, 协议) flow_key = (pkt['IP'].src, pkt['IP'].dst, src_port, dst_port, proto) flows[flow_key].append(pkt) print(f"共识别出 {len(flows)} 个网络流") # ====================== # 2. 特征工程 # ====================== print("正在提取流量特征...") features = [] valid_flows = [] for flow_key, packets in flows.items(): # 跳过包含少于5个包的流 if len(packets) < 5: continue # 基础统计特征 packet_count = len(packets) total_bytes = sum(len(p) for p in packets) # 时序特征 timestamps = [float(p.time) for p in packets] # 关键修改:转换为float iat = np.diff(timestamps) # 包间隔时间 mean_iat = np.mean(iat) if len(iat) > 0 else 0 std_iat = np.std(iat) if len(iat) > 1 else 0 # 包长特征 pkt_lengths = [len(p) for p in packets] mean_pkt_len = np.mean(pkt_lengths) std_pkt_len = np.std(pkt_lengths) min_pkt_len = min(pkt_lengths) max_pkt_len = max(pkt_lengths) # 方向特征 (0=客户端到服务器, 1=服务器到客户端) directions = [1 if p['IP'].src == flow_key[0] else 0 for p in packets] up_ratio = sum(directions) / len(directions) features.append([ packet_count, total_bytes, mean_iat, std_iat, mean_pkt_len, std_pkt_len, min_pkt_len, max_pkt_len, up_ratio ]) valid_flows.append(flow_key) # 转换为特征矩阵 feature_matrix = np.array(features) feature_names = [ '包数量', '总字节数', '平均包间隔', '包间隔标准差', '平均包长', '包长标准差', '最小包长', '最大包长', '上行比例' ] print(f"提取了 {len(features)} 个有效流的 {len(feature_names)} 维特征") # ====================== # 3. 数据标准化 # ====================== print("正在进行数据标准化...") scaler = StandardScaler() scaled_features = scaler.fit_transform(feature_matrix) # ====================== # 4. 肘部法则确定最佳K值 # ====================== print("使用肘部法则确定最佳聚类数...") n_samples = scaled_features.shape[0] # 获取实际样本数 # 根据样本数量动态调整K范围 if n_samples < 5: print(f"警告:样本数量较少({n_samples}),将使用简化聚类策略") k_range = range(1, min(11, n_samples + 1)) # K值上限不超过样本数 else: k_range = range(1, 11) # 测试1-10个聚类 sse = [] kmeans_models = {} # 存储每个K的模型 for k in k_range: # 确保K值不超过样本数 if k > n_samples: print(f"跳过K={k}(超过样本数{n_samples})") continue kmeans = KMeans(n_clusters=k, n_init=10, random_state=42) kmeans.fit(scaled_features) sse.append(kmeans.inertia_) # 获取SSE kmeans_models[k] = kmeans # 存储模型 # 如果没有足够的点绘制肘部图,直接选择K值 if len(sse) < 2: optimal_k = min(2, n_samples) # 至少2类,但不超过样本数 print(f"样本过少,直接设置K={optimal_k}") else: # 绘制肘部法则图 plt.figure(figsize=(10, 6)) plt.plot(list(k_range)[:len(sse)], sse, 'bo-') plt.xlabel('聚类数量 $ K$') plt.ylabel('SSE (误差平方和)') plt.title('肘部法则确定最佳聚类数') plt.grid(True) plt.savefig('elbow_method.png', dpi=300) plt.close() print("肘部法则图已保存为 elbow_method.png") # 自动检测拐点 (肘点) if len(sse) >= 3: # 至少有3个点才能计算二阶差分 knee_point = np.argmin(np.diff(sse, 2)) + 2 optimal_k = max(2, min(10, knee_point)) # 确保在2-10之间 else: # 样本较少时使用简单策略 optimal_k = max(2, min(3, n_samples)) # 选择2或3 print(f"自动检测的最佳聚类数: K = {optimal_k}") # ====================== # 5. K-means聚类 # ====================== print(f"正在进行K-means聚类 (K={optimal_k})...") # 如果样本数小于K,调整K值 if optimal_k > n_samples: optimal_k = max(1, n_samples) # 确保K不超过样本数 print(f"调整聚类数为样本数: K = {optimal_k}") # 使用之前存储的模型或创建新模型 if optimal_k in kmeans_models: kmeans = kmeans_models[optimal_k] cluster_labels = kmeans.labels_ else: kmeans = KMeans(n_clusters=optimal_k, n_init=10, random_state=42) cluster_labels = kmeans.fit_predict(scaled_features) # 计算轮廓系数(仅当K>1时) if optimal_k > 1: silhouette_avg = silhouette_score(scaled_features, cluster_labels) print(f"轮廓系数: {silhouette_avg:.4f} (接近1表示聚类效果良好)") else: print("聚类数为1,无需计算轮廓系数") # ====================== # 6. 结果分析与可视化 # ====================== # 创建结果DataFrame result_df = pd.DataFrame({ '源IP': [flow[0] for flow in valid_flows], '目的IP': [flow[1] for flow in valid_flows], '协议': [f"TCP(6)" if flow[4] == 6 else f"UDP(17)" for flow in valid_flows], '聚类标签': cluster_labels }) # 添加特征值到结果表 for i, name in enumerate(feature_names): result_df[name] = feature_matrix[:, i] # 保存聚类结果 result_df.to_csv('cluster_results.csv', index=False) print("聚类结果已保存为 cluster_results.csv") # 各簇统计信息 cluster_stats = result_df.groupby('聚类标签').agg({ '包数量': 'mean', '总字节数': 'mean', '平均包间隔': 'mean', '上行比例': 'mean' }).rename(columns={ '包数量': '平均包数量', '总字节数': '平均总字节数', '平均包间隔': '平均包间隔(s)', '上行比例': '平均上行比例' }) print("\n各用户簇流量特征统计:") print(cluster_stats.round(2)) # 可视化聚类结果 (使用前两个主成分) from sklearn.decomposition import PCA pca = PCA(n_components=2) principal_components = pca.fit_transform(scaled_features) plt.figure(figsize=(12, 8)) scatter = plt.scatter( principal_components[:, 0], principal_components[:, 1], c=cluster_labels, cmap='viridis', alpha=0.6 ) # 添加簇中心 centers = pca.transform(kmeans.cluster_centers_) plt.scatter( centers[:, 0], centers[:, 1], c='red', s=200, alpha=0.9, marker='X', edgecolor='black' ) plt.colorbar(scatter, label='用户簇') plt.xlabel('主成分 1') plt.ylabel('主成分 2') plt.title(f'校园网用户流量聚类 (K={optimal_k})') plt.grid(alpha=0.3) plt.savefig('cluster_visualization.png', dpi=300) plt.close() print("聚类可视化图已保存为 cluster_visualization.png") print("\n聚类完成! 结果文件已保存:") print("- elbow_method.png: 肘部法则图") print("- cluster_results.csv: 详细聚类结果") print("- cluster_visualization.png: 聚类可视化") 编译结果如下,解释一下编译结果 E:\用户画像\聚类分离用户数据\.venv\Scripts\python.exe E:\用户画像\聚类分离用户数据\聚类分离校园网数据.py 正在解析PCAP文件... 共识别出 3 个网络流 正在提取流量特征... 提取了 3 个有效流的 9 维特征 正在进行数据标准化... 使用肘部法则确定最佳聚类数... 警告:样本数量较少(3),将使用简化聚类策略 E:\用户画像\聚类分离用户数据\聚类分离校园网数据.py:132: UserWarning: Glyph 35823 (\N{CJK UNIFIED IDEOGRAPH-8BEF}) missing from font(s) DejaVu Sans. plt.savefig('elbow_method.png', dpi=300) E:\用户画像\聚类分离用户数据\聚类分离校园网数据.py:132: UserWarning: Glyph 24046 (\N{CJK UNIFIED IDEOGRAPH-5DEE}) missing from font(s) DejaVu Sans. plt.savefig('elbow_method.png', dpi=300) E:\用户画像\聚类分离用户数据\聚类分离校园网数据.py:132: UserWarning: Glyph 24179 (\N{CJK UNIFIED IDEOGRAPH-5E73}) missing from font(s) DejaVu Sans. plt.savefig('elbow_method.png', dpi=300) E:\用户画像\聚类分离用户数据\聚类分离校园网数据.py:132: UserWarning: Glyph 26041 (\N{CJK UNIFIED IDEOGRAPH-65B9}) missing from font(s) DejaVu Sans. plt.savefig('elbow_method.png', dpi=300) E:\用户画像\聚类分离用户数据\聚类分离校园网数据.py:132: UserWarning: Glyph 21644 (\N{CJK UNIFIED IDEOGRAPH-548C}) missing from font(s) DejaVu Sans. plt.savefig('elbow_method.png', dpi=300) E:\用户画像\聚类分离用户数据\聚类分离校园网数据.py:132: UserWarning: Glyph 32920 (\N{CJK UNIFIED IDEOGRAPH-8098}) missing from font(s) DejaVu Sans. plt.savefig('elbow_method.png', dpi=300) E:\用户画像\聚类分离用户数据\聚类分离校园网数据.py:132: UserWarning: Glyph 37096 (\N{CJK UNIFIED IDEOGRAPH-90E8}) missing from font(s) DejaVu Sans. plt.savefig('elbow_method.png', dpi=300) E:\用户画像\聚类分离用户数据\聚类分离校园网数据.py:132: UserWarning: Glyph 27861 (\N{CJK UNIFIED IDEOGRAPH-6CD5}) missing from font(s) DejaVu Sans. plt.savefig('elbow_method.png', dpi=300) E:\用户画像\聚类分离用户数据\聚类分离校园网数据.py:132: UserWarning: Glyph 21017 (\N{CJK UNIFIED IDEOGRAPH-5219}) missing from font(s) DejaVu Sans. plt.savefig('elbow_method.png', dpi=300) E:\用户画像\聚类分离用户数据\聚类分离校园网数据.py:132: UserWarning: Glyph 30830 (\N{CJK UNIFIED IDEOGRAPH-786E}) missing from font(s) DejaVu Sans. plt.savefig('elbow_method.png', dpi=300) E:\用户画像\聚类分离用户数据\聚类分离校园网数据.py:132: UserWarning: Glyph 23450 (\N{CJK UNIFIED IDEOGRAPH-5B9A}) missing from font(s) DejaVu Sans. plt.savefig('elbow_method.png', dpi=300) E:\用户画像\聚类分离用户数据\聚类分离校园网数据.py:132: UserWarning: Glyph 26368 (\N{CJK UNIFIED IDEOGRAPH-6700}) missing from font(s) DejaVu Sans. plt.savefig('elbow_method.png', dpi=300) E:\用户画像\聚类分离用户数据\聚类分离校园网数据.py:132: UserWarning: Glyph 20339 (\N{CJK UNIFIED IDEOGRAPH-4F73}) missing from font(s) DejaVu Sans. plt.savefig('elbow_method.png', dpi=300) E:\用户画像\聚类分离用户数据\聚类分离校园网数据.py:132: UserWarning: Glyph 32858 (\N{CJK UNIFIED IDEOGRAPH-805A}) missing from font(s) DejaVu Sans. plt.savefig('elbow_method.png', dpi=300) E:\用户画像\聚类分离用户数据\聚类分离校园网数据.py:132: UserWarning: Glyph 31867 (\N{CJK UNIFIED IDEOGRAPH-7C7B}) missing from font(s) DejaVu Sans. plt.savefig('elbow_method.png', dpi=300) E:\用户画像\聚类分离用户数据\聚类分离校园网数据.py:132: UserWarning: Glyph 25968 (\N{CJK UNIFIED IDEOGRAPH-6570}) missing from font(s) DejaVu Sans. plt.savefig('elbow_method.png', dpi=300) Font 'default' does not have a glyph for '\u805a' [U+805a], substituting with a dummy symbol. Font 'default' does not have a glyph for '\u7c7b' [U+7c7b], substituting with a dummy symbol. Font 'default' does not have a glyph for '\u6570' [U+6570], substituting with a dummy symbol. Font 'default' does not have a glyph for '\u91cf' [U+91cf], substituting with a dummy symbol. C:\Program Files\JetBrains\PyCharm 2025.1.2\plugins\python-ce\helpers\pycharm_matplotlib_backend\backend_interagg.py:124: UserWarning: Glyph 35823 (\N{CJK UNIFIED IDEOGRAPH-8BEF}) missing from font(s) DejaVu Sans. FigureCanvasAgg.draw(self) C:\Program Files\JetBrains\PyCharm 2025.1.2\plugins\python-ce\helpers\pycharm_matplotlib_backend\backend_interagg.py:124: UserWarning: Glyph 24046 (\N{CJK UNIFIED IDEOGRAPH-5DEE}) missing from font(s) DejaVu Sans. FigureCanvasAgg.draw(self) C:\Program Files\JetBrains\PyCharm 2025.1.2\plugins\python-ce\helpers\pycharm_matplotlib_backend\backend_interagg.py:124: UserWarning: Glyph 24179 (\N{CJK UNIFIED IDEOGRAPH-5E73}) missing from font(s) DejaVu Sans. FigureCanvasAgg.draw(self) C:\Program Files\JetBrains\PyCharm 2025.1.2\plugins\python-ce\helpers\pycharm_matplotlib_backend\backend_interagg.py:124: UserWarning: Glyph 26041 (\N{CJK UNIFIED IDEOGRAPH-65B9}) missing from font(s) DejaVu Sans. FigureCanvasAgg.draw(self) C:\Program Files\JetBrains\PyCharm 2025.1.2\plugins\python-ce\helpers\pycharm_matplotlib_backend\backend_interagg.py:124: UserWarning: Glyph 21644 (\N{CJK UNIFIED IDEOGRAPH-548C}) missing from font(s) DejaVu Sans. FigureCanvasAgg.draw(self) C:\Program Files\JetBrains\PyCharm 2025.1.2\plugins\python-ce\helpers\pycharm_matplotlib_backend\backend_interagg.py:124: UserWarning: Glyph 32920 (\N{CJK UNIFIED IDEOGRAPH-8098}) missing from font(s) DejaVu Sans. FigureCanvasAgg.draw(self) C:\Program Files\JetBrains\PyCharm 2025.1.2\plugins\python-ce\helpers\pycharm_matplotlib_backend\backend_interagg.py:124: UserWarning: Glyph 37096 (\N{CJK UNIFIED IDEOGRAPH-90E8}) missing from font(s) DejaVu Sans. FigureCanvasAgg.draw(self) C:\Program Files\JetBrains\PyCharm 2025.1.2\plugins\python-ce\helpers\pycharm_matplotlib_backend\backend_interagg.py:124: UserWarning: Glyph 27861 (\N{CJK UNIFIED IDEOGRAPH-6CD5}) missing from font(s) DejaVu Sans. FigureCanvasAgg.draw(self) C:\Program Files\JetBrains\PyCharm 2025.1.2\plugins\python-ce\helpers\pycharm_matplotlib_backend\backend_interagg.py:124: UserWarning: Glyph 21017 (\N{CJK UNIFIED IDEOGRAPH-5219}) missing from font(s) DejaVu Sans. FigureCanvasAgg.draw(self) C:\Program Files\JetBrains\PyCharm 2025.1.2\plugins\python-ce\helpers\pycharm_matplotlib_backend\backend_interagg.py:124: UserWarning: Glyph 30830 (\N{CJK UNIFIED IDEOGRAPH-786E}) missing from font(s) DejaVu Sans. FigureCanvasAgg.draw(self) C:\Program Files\JetBrains\PyCharm 2025.1.2\plugins\python-ce\helpers\pycharm_matplotlib_backend\backend_interagg.py:124: UserWarning: Glyph 23450 (\N{CJK UNIFIED IDEOGRAPH-5B9A}) missing from font(s) DejaVu Sans. FigureCanvasAgg.draw(self) C:\Program Files\JetBrains\PyCharm 2025.1.2\plugins\python-ce\helpers\pycharm_matplotlib_backend\backend_interagg.py:124: UserWarning: Glyph 26368 (\N{CJK UNIFIED IDEOGRAPH-6700}) missing from font(s) DejaVu Sans. FigureCanvasAgg.draw(self) C:\Program Files\JetBrains\PyCharm 2025.1.2\plugins\python-ce\helpers\pycharm_matplotlib_backend\backend_interagg.py:124: UserWarning: Glyph 20339 (\N{CJK UNIFIED IDEOGRAPH-4F73}) missing from font(s) DejaVu Sans. FigureCanvasAgg.draw(self) C:\Program Files\JetBrains\PyCharm 2025.1.2\plugins\python-ce\helpers\pycharm_matplotlib_backend\backend_interagg.py:124: UserWarning: Glyph 32858 (\N{CJK UNIFIED IDEOGRAPH-805A}) missing from font(s) DejaVu Sans. FigureCanvasAgg.draw(self) C:\Program Files\JetBrains\PyCharm 2025.1.2\plugins\python-ce\helpers\pycharm_matplotlib_backend\backend_interagg.py:124: UserWarning: Glyph 31867 (\N{CJK UNIFIED IDEOGRAPH-7C7B}) missing from font(s) DejaVu Sans. FigureCanvasAgg.draw(self) C:\Program Files\JetBrains\PyCharm 2025.1.2\plugins\python-ce\helpers\pycharm_matplotlib_backend\backend_interagg.py:124: UserWarning: Glyph 25968 (\N{CJK UNIFIED IDEOGRAPH-6570}) missing from font(s) DejaVu Sans. FigureCanvasAgg.draw(self) Font 'default' does not have a glyph for '\u805a' [U+805a], substituting with a dummy symbol. Font 'default' does not have a glyph for '\u7c7b' [U+7c7b], substituting with a dummy symbol. Font 'default' does not have a glyph for '\u6570' [U+6570], substituting with a dummy symbol. Font 'default' does not have a glyph for '\u91cf' [U+91cf], substituting with a dummy symbol. 肘部法则图已保存为 elbow_method.png 自动检测的最佳聚类数: K = 2 正在进行K-means聚类 (K=2)... 轮廓系数: 0.1744 (接近1表示聚类效果良好) 聚类结果已保存为 cluster_results.csv 各用户簇流量特征统计: 平均包数量 平均总字节数 平均包间隔(s) 平均上行比例 聚类标签 0 10.5 3721.0 0.04 1.0 1 6.0 1023.0 0.16 1.0 E:\用户画像\聚类分离用户数据\聚类分离校园网数据.py:234: UserWarning: Glyph 20027 (\N{CJK UNIFIED IDEOGRAPH-4E3B}) missing from font(s) DejaVu Sans. plt.savefig('cluster_visualization.png', dpi=300) E:\用户画像\聚类分离用户数据\聚类分离校园网数据.py:234: UserWarning: Glyph 25104 (\N{CJK UNIFIED IDEOGRAPH-6210}) missing from font(s) DejaVu Sans. plt.savefig('cluster_visualization.png', dpi=300) E:\用户画像\聚类分离用户数据\聚类分离校园网数据.py:234: UserWarning: Glyph 20998 (\N{CJK UNIFIED IDEOGRAPH-5206}) missing from font(s) DejaVu Sans. plt.savefig('cluster_visualization.png', dpi=300) E:\用户画像\聚类分离用户数据\聚类分离校园网数据.py:234: UserWarning: Glyph 26657 (\N{CJK UNIFIED IDEOGRAPH-6821}) missing from font(s) DejaVu Sans. plt.savefig('cluster_visualization.png', dpi=300) E:\用户画像\聚类分离用户数据\聚类分离校园网数据.py:234: UserWarning: Glyph 22253 (\N{CJK UNIFIED IDEOGRAPH-56ED}) missing from font(s) DejaVu Sans. plt.savefig('cluster_visualization.png', dpi=300) E:\用户画像\聚类分离用户数据\聚类分离校园网数据.py:234: UserWarning: Glyph 32593 (\N{CJK UNIFIED IDEOGRAPH-7F51}) missing from font(s) DejaVu Sans. plt.savefig('cluster_visualization.png', dpi=300) E:\用户画像\聚类分离用户数据\聚类分离校园网数据.py:234: UserWarning: Glyph 29992 (\N{CJK UNIFIED IDEOGRAPH-7528}) missing from font(s) DejaVu Sans. plt.savefig('cluster_visualization.png', dpi=300) E:\用户画像\聚类分离用户数据\聚类分离校园网数据.py:234: UserWarning: Glyph 25143 (\N{CJK UNIFIED IDEOGRAPH-6237}) missing from font(s) DejaVu Sans. plt.savefig('cluster_visualization.png', dpi=300) E:\用户画像\聚类分离用户数据\聚类分离校园网数据.py:234: UserWarning: Glyph 27969 (\N{CJK UNIFIED IDEOGRAPH-6D41}) missing from font(s) DejaVu Sans. plt.savefig('cluster_visualization.png', dpi=300) E:\用户画像\聚类分离用户数据\聚类分离校园网数据.py:234: UserWarning: Glyph 37327 (\N{CJK UNIFIED IDEOGRAPH-91CF}) missing from font(s) DejaVu Sans. plt.savefig('cluster_visualization.png', dpi=300) E:\用户画像\聚类分离用户数据\聚类分离校园网数据.py:234: UserWarning: Glyph 32858 (\N{CJK UNIFIED IDEOGRAPH-805A}) missing from font(s) DejaVu Sans. plt.savefig('cluster_visualization.png', dpi=300) E:\用户画像\聚类分离用户数据\聚类分离校园网数据.py:234: UserWarning: Glyph 31867 (\N{CJK UNIFIED IDEOGRAPH-7C7B}) missing from font(s) DejaVu Sans. plt.savefig('cluster_visualization.png', dpi=300) E:\用户画像\聚类分离用户数据\聚类分离校园网数据.py:234: UserWarning: Glyph 31751 (\N{CJK UNIFIED IDEOGRAPH-7C07}) missing from font(s) DejaVu Sans. plt.savefig('cluster_visualization.png', dpi=300) C:\Program Files\JetBrains\PyCharm 2025.1.2\plugins\python-ce\helpers\pycharm_matplotlib_backend\backend_interagg.py:124: UserWarning: Glyph 20027 (\N{CJK UNIFIED IDEOGRAPH-4E3B}) missing from font(s) DejaVu Sans. FigureCanvasAgg.draw(self) C:\Program Files\JetBrains\PyCharm 2025.1.2\plugins\python-ce\helpers\pycharm_matplotlib_backend\backend_interagg.py:124: UserWarning: Glyph 25104 (\N{CJK UNIFIED IDEOGRAPH-6210}) missing from font(s) DejaVu Sans. FigureCanvasAgg.draw(self) C:\Program Files\JetBrains\PyCharm 2025.1.2\plugins\python-ce\helpers\pycharm_matplotlib_backend\backend_interagg.py:124: UserWarning: Glyph 20998 (\N{CJK UNIFIED IDEOGRAPH-5206}) missing from font(s) DejaVu Sans. FigureCanvasAgg.draw(self) C:\Program Files\JetBrains\PyCharm 2025.1.2\plugins\python-ce\helpers\pycharm_matplotlib_backend\backend_interagg.py:124: UserWarning: Glyph 26657 (\N{CJK UNIFIED IDEOGRAPH-6821}) missing from font(s) DejaVu Sans. FigureCanvasAgg.draw(self) C:\Program Files\JetBrains\PyCharm 2025.1.2\plugins\python-ce\helpers\pycharm_matplotlib_backend\backend_interagg.py:124: UserWarning: Glyph 22253 (\N{CJK UNIFIED IDEOGRAPH-56ED}) missing from font(s) DejaVu Sans. FigureCanvasAgg.draw(self) C:\Program Files\JetBrains\PyCharm 2025.1.2\plugins\python-ce\helpers\pycharm_matplotlib_backend\backend_interagg.py:124: UserWarning: Glyph 32593 (\N{CJK UNIFIED IDEOGRAPH-7F51}) missing from font(s) DejaVu Sans. FigureCanvasAgg.draw(self) C:\Program Files\JetBrains\PyCharm 2025.1.2\plugins\python-ce\helpers\pycharm_matplotlib_backend\backend_interagg.py:124: UserWarning: Glyph 29992 (\N{CJK UNIFIED IDEOGRAPH-7528}) missing from font(s) DejaVu Sans. FigureCanvasAgg.draw(self) C:\Program Files\JetBrains\PyCharm 2025.1.2\plugins\python-ce\helpers\pycharm_matplotlib_backend\backend_interagg.py:124: UserWarning: Glyph 25143 (\N{CJK UNIFIED IDEOGRAPH-6237}) missing from font(s) DejaVu Sans. FigureCanvasAgg.draw(self) C:\Program Files\JetBrains\PyCharm 2025.1.2\plugins\python-ce\helpers\pycharm_matplotlib_backend\backend_interagg.py:124: UserWarning: Glyph 27969 (\N{CJK UNIFIED IDEOGRAPH-6D41}) missing from font(s) DejaVu Sans. FigureCanvasAgg.draw(self) C:\Program Files\JetBrains\PyCharm 2025.1.2\plugins\python-ce\helpers\pycharm_matplotlib_backend\backend_interagg.py:124: UserWarning: Glyph 37327 (\N{CJK UNIFIED IDEOGRAPH-91CF}) missing from font(s) DejaVu Sans. FigureCanvasAgg.draw(self) C:\Program Files\JetBrains\PyCharm 2025.1.2\plugins\python-ce\helpers\pycharm_matplotlib_backend\backend_interagg.py:124: UserWarning: Glyph 32858 (\N{CJK UNIFIED IDEOGRAPH-805A}) missing from font(s) DejaVu Sans. FigureCanvasAgg.draw(self) C:\Program Files\JetBrains\PyCharm 2025.1.2\plugins\python-ce\helpers\pycharm_matplotlib_backend\backend_interagg.py:124: UserWarning: Glyph 31867 (\N{CJK UNIFIED IDEOGRAPH-7C7B}) missing from font(s) DejaVu Sans. FigureCanvasAgg.draw(self) C:\Program Files\JetBrains\PyCharm 2025.1.2\plugins\python-ce\helpers\pycharm_matplotlib_backend\backend_interagg.py:124: UserWarning: Glyph 31751 (\N{CJK UNIFIED IDEOGRAPH-7C07}) missing from font(s) DejaVu Sans. FigureCanvasAgg.draw(self) 聚类可视化图已保存为 cluster_visualization.png 聚类完成! 结果文件已保存: - elbow_method.png: 肘部法则图 - cluster_results.csv: 详细聚类结果 - cluster_visualization.png: 聚类可视化 进程已结束,退出代码为 0
07-01
--- Logging error --- Traceback (most recent call last): File "D:\Anaconda\Lib\logging\__init__.py", line 1163, in emit stream.write(msg + self.terminator) UnicodeEncodeError: 'gbk' codec can't encode character '\xb3' in position 75: illegal multibyte sequence Call stack: File "D:\PythonProject1\水位计算软件.py", line 606, in <module> root.mainloop() File "D:\Anaconda\Lib\tkinter\__init__.py", line 1505, in mainloop self.tk.mainloop(n) File "D:\Anaconda\Lib\tkinter\__init__.py", line 1968, in __call__ return self.func(*args) File "D:\PythonProject1\水位计算软件.py", line 572, in show_results self.calculator.plot_results() File "D:\PythonProject1\水位计算软件.py", line 274, in plot_results plt.show() File "D:\Anaconda\Lib\site-packages\matplotlib\pyplot.py", line 614, in show return _get_backend_mod().show(*args, **kwargs) File "D:\Anaconda\Lib\site-packages\matplotlib\backend_bases.py", line 3547, in show cls.mainloop() File "D:\Anaconda\Lib\site-packages\matplotlib\backends\_backend_tk.py", line 544, in start_main_loop first_manager.window.mainloop() File "D:\Anaconda\Lib\tkinter\__init__.py", line 1505, in mainloop self.tk.mainloop(n) File "D:\Anaconda\Lib\tkinter\__init__.py", line 1968, in __call__ return self.func(*args) File "D:\Anaconda\Lib\tkinter\__init__.py", line 862, in callit func(*args) File "D:\Anaconda\Lib\site-packages\matplotlib\backends\_backend_tk.py", line 274, in idle_draw self.draw() File "D:\Anaconda\Lib\site-packages\matplotlib\backends\backend_tkagg.py", line 10, in draw super().draw() File "D:\Anaconda\Lib\site-packages\matplotlib\backends\backend_agg.py", line 382, in draw self.figure.draw(self.renderer) File "D:\Anaconda\Lib\site-packages\matplotlib\artist.py", line 94, in draw_wrapper result = draw(artist, renderer, *args, **kwargs) File "D:\Anaconda\Lib\site-packages\matplotlib\artist.py", line 71, in draw_wrapper return draw(artist, renderer) File "D:\Anaconda\Lib\site-packages\matplotlib\figure.py", line 3257, in draw mimage._draw_list_compositing_images( File "D:\Anaconda\Lib\site-packages\matplotlib\image.py", line 134, in _draw_list_compositing_images a.draw(renderer) File "D:\Anaconda\Lib\site-packages\matplotlib\artist.py", line 71, in draw_wrapper return draw(artist, renderer) File "D:\Anaconda\Lib\site-packages\matplotlib\axes\_base.py", line 3181, in draw mimage._draw_list_compositing_images( File "D:\Anaconda\Lib\site-packages\matplotlib\image.py", line 134, in _draw_list_compositing_images a.draw(renderer) File "D:\Anaconda\Lib\site-packages\matplotlib\artist.py", line 71, in draw_wrapper return draw(artist, renderer) File "D:\Anaconda\Lib\site-packages\matplotlib\axis.py", line 1423, in draw self.label.draw(renderer) File "D:\Anaconda\Lib\site-packages\matplotlib\artist.py", line 71, in draw_wrapper return draw(artist, renderer) File "D:\Anaconda\Lib\site-packages\matplotlib\text.py", line 752, in draw bbox, info, descent = self._get_layout(renderer) File "D:\Anaconda\Lib\site-packages\matplotlib\text.py", line 382, in _get_layout w, h, d = _get_text_metrics_with_cache( File "D:\Anaconda\Lib\site-packages\matplotlib\text.py", line 69, in _get_text_metrics_with_cache return _get_text_metrics_with_cache_impl( File "D:\Anaconda\Lib\site-packages\matplotlib\text.py", line 77, in _get_text_metrics_with_cache_impl return renderer_ref().get_text_width_height_descent(text, fontprop, ismath) File "D:\Anaconda\Lib\site-packages\matplotlib\backends\backend_agg.py", line 215, in get_text_width_height_descent self.mathtext_parser.parse(s, self.dpi, prop) File "D:\Anaconda\Lib\site-packages\matplotlib\mathtext.py", line 86, in parse return self._parse_cached(s, dpi, prop, antialiased, load_glyph_flags) File "D:\Anaconda\Lib\site-packages\matplotlib\mathtext.py", line 100, in _parse_cached box = self._parser.parse(s, fontset, fontsize, dpi) File "D:\Anaconda\Lib\site-packages\matplotlib\_mathtext.py", line 2170, in parse result = self._expression.parseString(s) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 1131, in parse_string loc, tokens = self._parse(instring, 0) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 921, in _parseCache value = self._parseNoCache(instring, loc, doActions, callPreParse) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 817, in _parseNoCache loc, tokens = self.parseImpl(instring, pre_loc, doActions) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 3886, in parseImpl loc, exprtokens = e._parse(instring, loc, doActions) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 921, in _parseCache value = self._parseNoCache(instring, loc, doActions, callPreParse) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 817, in _parseNoCache loc, tokens = self.parseImpl(instring, pre_loc, doActions) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 4891, in parseImpl return super().parseImpl(instring, loc, doActions) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 4790, in parseImpl loc, tokens = self_expr_parse(instring, loc, doActions) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 921, in _parseCache value = self._parseNoCache(instring, loc, doActions, callPreParse) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 817, in _parseNoCache loc, tokens = self.parseImpl(instring, pre_loc, doActions) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 3886, in parseImpl loc, exprtokens = e._parse(instring, loc, doActions) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 921, in _parseCache value = self._parseNoCache(instring, loc, doActions, callPreParse) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 856, in _parseNoCache tokens = fn(instring, tokens_start, ret_tokens) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 291, in wrapper ret = func(*args[limit:]) File "D:\Anaconda\Lib\site-packages\matplotlib\_mathtext.py", line 2206, in non_math symbols = [Char(c, self.get_state()) for c in s] File "D:\Anaconda\Lib\site-packages\matplotlib\_mathtext.py", line 1091, in __init__ self._update_metrics() File "D:\Anaconda\Lib\site-packages\matplotlib\_mathtext.py", line 1097, in _update_metrics metrics = self._metrics = self.fontset.get_metrics( File "D:\Anaconda\Lib\site-packages\matplotlib\_mathtext.py", line 286, in get_metrics info = self._get_info(font, font_class, sym, fontsize, dpi) File "D:\Anaconda\Lib\site-packages\matplotlib\_mathtext.py", line 375, in _get_info font, num, slanted = self._get_glyph(fontname, font_class, sym) File "D:\Anaconda\Lib\site-packages\matplotlib\_mathtext.py", line 710, in _get_glyph return super()._get_glyph(fontname, font_class, sym) File "D:\Anaconda\Lib\site-packages\matplotlib\_mathtext.py", line 648, in _get_glyph _log.info("Substituting symbol %s from %s", sym, family) Message: 'Substituting symbol %s from %s' Arguments: ('³', 'STIXGeneral') 2025-07-26 16:29:36,050 - matplotlib.mathtext - WARNING - Font 'default' does not have a glyph for '\xb3' [U+b3], substituting with a dummy symbol. 2025-07-26 16:29:36,051 - matplotlib.mathtext - INFO - Substituting symbol ³ from STIXGeneral 2025-07-26 16:29:36,145 - matplotlib.mathtext - WARNING - Font 'default' does not have a glyph for '\xb3' [U+b3], substituting with a dummy symbol. 2025-07-26 16:29:36,145 - matplotlib.mathtext - INFO - Substituting symbol ³ from STIXGeneral --- Logging error --- Traceback (most recent call last): File "D:\Anaconda\Lib\logging\__init__.py", line 1163, in emit stream.write(msg + self.terminator) UnicodeEncodeError: 'gbk' codec can't encode character '\xb3' in position 75: illegal multibyte sequence Call stack: File "D:\PythonProject1\水位计算软件.py", line 606, in <module> root.mainloop() File "D:\Anaconda\Lib\tkinter\__init__.py", line 1505, in mainloop self.tk.mainloop(n) File "D:\Anaconda\Lib\tkinter\__init__.py", line 1968, in __call__ return self.func(*args) File "D:\PythonProject1\水位计算软件.py", line 572, in show_results self.calculator.plot_results() File "D:\PythonProject1\水位计算软件.py", line 274, in plot_results plt.show() File "D:\Anaconda\Lib\site-packages\matplotlib\pyplot.py", line 614, in show return _get_backend_mod().show(*args, **kwargs) File "D:\Anaconda\Lib\site-packages\matplotlib\backend_bases.py", line 3547, in show cls.mainloop() File "D:\Anaconda\Lib\site-packages\matplotlib\backends\_backend_tk.py", line 544, in start_main_loop first_manager.window.mainloop() File "D:\Anaconda\Lib\tkinter\__init__.py", line 1505, in mainloop self.tk.mainloop(n) File "D:\Anaconda\Lib\tkinter\__init__.py", line 1968, in __call__ return self.func(*args) File "D:\Anaconda\Lib\tkinter\__init__.py", line 862, in callit func(*args) File "D:\Anaconda\Lib\site-packages\matplotlib\backends\_backend_tk.py", line 274, in idle_draw self.draw() File "D:\Anaconda\Lib\site-packages\matplotlib\backends\backend_tkagg.py", line 10, in draw super().draw() File "D:\Anaconda\Lib\site-packages\matplotlib\backends\backend_agg.py", line 382, in draw self.figure.draw(self.renderer) File "D:\Anaconda\Lib\site-packages\matplotlib\artist.py", line 94, in draw_wrapper result = draw(artist, renderer, *args, **kwargs) File "D:\Anaconda\Lib\site-packages\matplotlib\artist.py", line 71, in draw_wrapper return draw(artist, renderer) File "D:\Anaconda\Lib\site-packages\matplotlib\figure.py", line 3257, in draw mimage._draw_list_compositing_images( File "D:\Anaconda\Lib\site-packages\matplotlib\image.py", line 134, in _draw_list_compositing_images a.draw(renderer) File "D:\Anaconda\Lib\site-packages\matplotlib\artist.py", line 71, in draw_wrapper return draw(artist, renderer) File "D:\Anaconda\Lib\site-packages\matplotlib\axes\_base.py", line 3181, in draw mimage._draw_list_compositing_images( File "D:\Anaconda\Lib\site-packages\matplotlib\image.py", line 134, in _draw_list_compositing_images a.draw(renderer) File "D:\Anaconda\Lib\site-packages\matplotlib\artist.py", line 71, in draw_wrapper return draw(artist, renderer) File "D:\Anaconda\Lib\site-packages\matplotlib\axis.py", line 1423, in draw self.label.draw(renderer) File "D:\Anaconda\Lib\site-packages\matplotlib\artist.py", line 71, in draw_wrapper return draw(artist, renderer) File "D:\Anaconda\Lib\site-packages\matplotlib\text.py", line 752, in draw bbox, info, descent = self._get_layout(renderer) File "D:\Anaconda\Lib\site-packages\matplotlib\text.py", line 382, in _get_layout w, h, d = _get_text_metrics_with_cache( File "D:\Anaconda\Lib\site-packages\matplotlib\text.py", line 69, in _get_text_metrics_with_cache return _get_text_metrics_with_cache_impl( File "D:\Anaconda\Lib\site-packages\matplotlib\text.py", line 77, in _get_text_metrics_with_cache_impl return renderer_ref().get_text_width_height_descent(text, fontprop, ismath) File "D:\Anaconda\Lib\site-packages\matplotlib\backends\backend_agg.py", line 215, in get_text_width_height_descent self.mathtext_parser.parse(s, self.dpi, prop) File "D:\Anaconda\Lib\site-packages\matplotlib\mathtext.py", line 86, in parse return self._parse_cached(s, dpi, prop, antialiased, load_glyph_flags) File "D:\Anaconda\Lib\site-packages\matplotlib\mathtext.py", line 100, in _parse_cached box = self._parser.parse(s, fontset, fontsize, dpi) File "D:\Anaconda\Lib\site-packages\matplotlib\_mathtext.py", line 2170, in parse result = self._expression.parseString(s) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 1131, in parse_string loc, tokens = self._parse(instring, 0) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 921, in _parseCache value = self._parseNoCache(instring, loc, doActions, callPreParse) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 817, in _parseNoCache loc, tokens = self.parseImpl(instring, pre_loc, doActions) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 3886, in parseImpl loc, exprtokens = e._parse(instring, loc, doActions) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 921, in _parseCache value = self._parseNoCache(instring, loc, doActions, callPreParse) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 817, in _parseNoCache loc, tokens = self.parseImpl(instring, pre_loc, doActions) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 4891, in parseImpl return super().parseImpl(instring, loc, doActions) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 4790, in parseImpl loc, tokens = self_expr_parse(instring, loc, doActions) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 921, in _parseCache value = self._parseNoCache(instring, loc, doActions, callPreParse) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 817, in _parseNoCache loc, tokens = self.parseImpl(instring, pre_loc, doActions) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 3886, in parseImpl loc, exprtokens = e._parse(instring, loc, doActions) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 921, in _parseCache value = self._parseNoCache(instring, loc, doActions, callPreParse) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 856, in _parseNoCache tokens = fn(instring, tokens_start, ret_tokens) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 291, in wrapper ret = func(*args[limit:]) File "D:\Anaconda\Lib\site-packages\matplotlib\_mathtext.py", line 2206, in non_math symbols = [Char(c, self.get_state()) for c in s] File "D:\Anaconda\Lib\site-packages\matplotlib\_mathtext.py", line 1091, in __init__ self._update_metrics() File "D:\Anaconda\Lib\site-packages\matplotlib\_mathtext.py", line 1097, in _update_metrics metrics = self._metrics = self.fontset.get_metrics( File "D:\Anaconda\Lib\site-packages\matplotlib\_mathtext.py", line 286, in get_metrics info = self._get_info(font, font_class, sym, fontsize, dpi) File "D:\Anaconda\Lib\site-packages\matplotlib\_mathtext.py", line 375, in _get_info font, num, slanted = self._get_glyph(fontname, font_class, sym) File "D:\Anaconda\Lib\site-packages\matplotlib\_mathtext.py", line 710, in _get_glyph return super()._get_glyph(fontname, font_class, sym) File "D:\Anaconda\Lib\site-packages\matplotlib\_mathtext.py", line 648, in _get_glyph _log.info("Substituting symbol %s from %s", sym, family) Message: 'Substituting symbol %s from %s' Arguments: ('³', 'STIXGeneral') 2025-07-26 16:29:37,728 - matplotlib.mathtext - WARNING - Font 'default' does not have a glyph for '\xb3' [U+b3], substituting with a dummy symbol. 2025-07-26 16:29:37,728 - matplotlib.mathtext - INFO - Substituting symbol ³ from STIXGeneral --- Logging error --- Traceback (most recent call last): File "D:\Anaconda\Lib\logging\__init__.py", line 1163, in emit stream.write(msg + self.terminator) UnicodeEncodeError: 'gbk' codec can't encode character '\xb3' in position 75: illegal multibyte sequence Call stack: File "D:\PythonProject1\水位计算软件.py", line 606, in <module> root.mainloop() File "D:\Anaconda\Lib\tkinter\__init__.py", line 1505, in mainloop self.tk.mainloop(n) File "D:\Anaconda\Lib\tkinter\__init__.py", line 1968, in __call__ return self.func(*args) File "D:\PythonProject1\水位计算软件.py", line 572, in show_results self.calculator.plot_results() File "D:\PythonProject1\水位计算软件.py", line 274, in plot_results plt.show() File "D:\Anaconda\Lib\site-packages\matplotlib\pyplot.py", line 614, in show return _get_backend_mod().show(*args, **kwargs) File "D:\Anaconda\Lib\site-packages\matplotlib\backend_bases.py", line 3547, in show cls.mainloop() File "D:\Anaconda\Lib\site-packages\matplotlib\backends\_backend_tk.py", line 544, in start_main_loop first_manager.window.mainloop() File "D:\Anaconda\Lib\tkinter\__init__.py", line 1505, in mainloop self.tk.mainloop(n) File "D:\Anaconda\Lib\tkinter\__init__.py", line 1968, in __call__ return self.func(*args) File "D:\Anaconda\Lib\tkinter\__init__.py", line 862, in callit func(*args) File "D:\Anaconda\Lib\site-packages\matplotlib\backends\_backend_tk.py", line 274, in idle_draw self.draw() File "D:\Anaconda\Lib\site-packages\matplotlib\backends\backend_tkagg.py", line 10, in draw super().draw() File "D:\Anaconda\Lib\site-packages\matplotlib\backends\backend_agg.py", line 382, in draw self.figure.draw(self.renderer) File "D:\Anaconda\Lib\site-packages\matplotlib\artist.py", line 94, in draw_wrapper result = draw(artist, renderer, *args, **kwargs) File "D:\Anaconda\Lib\site-packages\matplotlib\artist.py", line 71, in draw_wrapper return draw(artist, renderer) File "D:\Anaconda\Lib\site-packages\matplotlib\figure.py", line 3257, in draw mimage._draw_list_compositing_images( File "D:\Anaconda\Lib\site-packages\matplotlib\image.py", line 134, in _draw_list_compositing_images a.draw(renderer) File "D:\Anaconda\Lib\site-packages\matplotlib\artist.py", line 71, in draw_wrapper return draw(artist, renderer) File "D:\Anaconda\Lib\site-packages\matplotlib\axes\_base.py", line 3181, in draw mimage._draw_list_compositing_images( File "D:\Anaconda\Lib\site-packages\matplotlib\image.py", line 134, in _draw_list_compositing_images a.draw(renderer) File "D:\Anaconda\Lib\site-packages\matplotlib\artist.py", line 71, in draw_wrapper return draw(artist, renderer) File "D:\Anaconda\Lib\site-packages\matplotlib\axis.py", line 1423, in draw self.label.draw(renderer) File "D:\Anaconda\Lib\site-packages\matplotlib\artist.py", line 71, in draw_wrapper return draw(artist, renderer) File "D:\Anaconda\Lib\site-packages\matplotlib\text.py", line 752, in draw bbox, info, descent = self._get_layout(renderer) File "D:\Anaconda\Lib\site-packages\matplotlib\text.py", line 382, in _get_layout w, h, d = _get_text_metrics_with_cache( File "D:\Anaconda\Lib\site-packages\matplotlib\text.py", line 69, in _get_text_metrics_with_cache return _get_text_metrics_with_cache_impl( File "D:\Anaconda\Lib\site-packages\matplotlib\text.py", line 77, in _get_text_metrics_with_cache_impl return renderer_ref().get_text_width_height_descent(text, fontprop, ismath) File "D:\Anaconda\Lib\site-packages\matplotlib\backends\backend_agg.py", line 215, in get_text_width_height_descent self.mathtext_parser.parse(s, self.dpi, prop) File "D:\Anaconda\Lib\site-packages\matplotlib\mathtext.py", line 86, in parse return self._parse_cached(s, dpi, prop, antialiased, load_glyph_flags) File "D:\Anaconda\Lib\site-packages\matplotlib\mathtext.py", line 100, in _parse_cached box = self._parser.parse(s, fontset, fontsize, dpi) File "D:\Anaconda\Lib\site-packages\matplotlib\_mathtext.py", line 2170, in parse result = self._expression.parseString(s) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 1131, in parse_string loc, tokens = self._parse(instring, 0) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 921, in _parseCache value = self._parseNoCache(instring, loc, doActions, callPreParse) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 817, in _parseNoCache loc, tokens = self.parseImpl(instring, pre_loc, doActions) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 3886, in parseImpl loc, exprtokens = e._parse(instring, loc, doActions) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 921, in _parseCache value = self._parseNoCache(instring, loc, doActions, callPreParse) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 817, in _parseNoCache loc, tokens = self.parseImpl(instring, pre_loc, doActions) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 4891, in parseImpl return super().parseImpl(instring, loc, doActions) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 4790, in parseImpl loc, tokens = self_expr_parse(instring, loc, doActions) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 921, in _parseCache value = self._parseNoCache(instring, loc, doActions, callPreParse) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 817, in _parseNoCache loc, tokens = self.parseImpl(instring, pre_loc, doActions) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 3886, in parseImpl loc, exprtokens = e._parse(instring, loc, doActions) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 921, in _parseCache value = self._parseNoCache(instring, loc, doActions, callPreParse) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 856, in _parseNoCache tokens = fn(instring, tokens_start, ret_tokens) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 291, in wrapper ret = func(*args[limit:]) File "D:\Anaconda\Lib\site-packages\matplotlib\_mathtext.py", line 2206, in non_math symbols = [Char(c, self.get_state()) for c in s] File "D:\Anaconda\Lib\site-packages\matplotlib\_mathtext.py", line 1091, in __init__ self._update_metrics() File "D:\Anaconda\Lib\site-packages\matplotlib\_mathtext.py", line 1097, in _update_metrics metrics = self._metrics = self.fontset.get_metrics( File "D:\Anaconda\Lib\site-packages\matplotlib\_mathtext.py", line 286, in get_metrics info = self._get_info(font, font_class, sym, fontsize, dpi) File "D:\Anaconda\Lib\site-packages\matplotlib\_mathtext.py", line 375, in _get_info font, num, slanted = self._get_glyph(fontname, font_class, sym) File "D:\Anaconda\Lib\site-packages\matplotlib\_mathtext.py", line 710, in _get_glyph return super()._get_glyph(fontname, font_class, sym) File "D:\Anaconda\Lib\site-packages\matplotlib\_mathtext.py", line 648, in _get_glyph _log.info("Substituting symbol %s from %s", sym, family) Message: 'Substituting symbol %s from %s' Arguments: ('³', 'STIXGeneral') --- Logging error --- Traceback (most recent call last): File "D:\Anaconda\Lib\logging\__init__.py", line 1163, in emit stream.write(msg + self.terminator) UnicodeEncodeError: 'gbk' codec can't encode character '\xb3' in position 75: illegal multibyte sequence Call stack: File "D:\PythonProject1\水位计算软件.py", line 606, in <module> root.mainloop() File "D:\Anaconda\Lib\tkinter\__init__.py", line 1505, in mainloop self.tk.mainloop(n) File "D:\Anaconda\Lib\tkinter\__init__.py", line 1968, in __call__ return self.func(*args) File "D:\PythonProject1\水位计算软件.py", line 572, in show_results self.calculator.plot_results() File "D:\PythonProject1\水位计算软件.py", line 274, in plot_results plt.show() File "D:\Anaconda\Lib\site-packages\matplotlib\pyplot.py", line 614, in show return _get_backend_mod().show(*args, **kwargs) File "D:\Anaconda\Lib\site-packages\matplotlib\backend_bases.py", line 3547, in show cls.mainloop() File "D:\Anaconda\Lib\site-packages\matplotlib\backends\_backend_tk.py", line 544, in start_main_loop first_manager.window.mainloop() File "D:\Anaconda\Lib\tkinter\__init__.py", line 1505, in mainloop self.tk.mainloop(n) File "D:\Anaconda\Lib\tkinter\__init__.py", line 1968, in __call__ return self.func(*args) File "D:\Anaconda\Lib\tkinter\__init__.py", line 862, in callit func(*args) File "D:\Anaconda\Lib\site-packages\matplotlib\backends\_backend_tk.py", line 274, in idle_draw self.draw() File "D:\Anaconda\Lib\site-packages\matplotlib\backends\backend_tkagg.py", line 10, in draw super().draw() File "D:\Anaconda\Lib\site-packages\matplotlib\backends\backend_agg.py", line 382, in draw self.figure.draw(self.renderer) File "D:\Anaconda\Lib\site-packages\matplotlib\artist.py", line 94, in draw_wrapper result = draw(artist, renderer, *args, **kwargs) File "D:\Anaconda\Lib\site-packages\matplotlib\artist.py", line 71, in draw_wrapper return draw(artist, renderer) File "D:\Anaconda\Lib\site-packages\matplotlib\figure.py", line 3257, in draw mimage._draw_list_compositing_images( File "D:\Anaconda\Lib\site-packages\matplotlib\image.py", line 134, in _draw_list_compositing_images a.draw(renderer) File "D:\Anaconda\Lib\site-packages\matplotlib\artist.py", line 71, in draw_wrapper return draw(artist, renderer) File "D:\Anaconda\Lib\site-packages\matplotlib\axes\_base.py", line 3181, in draw mimage._draw_list_compositing_images( File "D:\Anaconda\Lib\site-packages\matplotlib\image.py", line 134, in _draw_list_compositing_images a.draw(renderer) File "D:\Anaconda\Lib\site-packages\matplotlib\artist.py", line 71, in draw_wrapper return draw(artist, renderer) File "D:\Anaconda\Lib\site-packages\matplotlib\axis.py", line 1423, in draw self.label.draw(renderer) File "D:\Anaconda\Lib\site-packages\matplotlib\artist.py", line 71, in draw_wrapper return draw(artist, renderer) File "D:\Anaconda\Lib\site-packages\matplotlib\text.py", line 752, in draw bbox, info, descent = self._get_layout(renderer) File "D:\Anaconda\Lib\site-packages\matplotlib\text.py", line 382, in _get_layout w, h, d = _get_text_metrics_with_cache( File "D:\Anaconda\Lib\site-packages\matplotlib\text.py", line 69, in _get_text_metrics_with_cache return _get_text_metrics_with_cache_impl( File "D:\Anaconda\Lib\site-packages\matplotlib\text.py", line 77, in _get_text_metrics_with_cache_impl return renderer_ref().get_text_width_height_descent(text, fontprop, ismath) File "D:\Anaconda\Lib\site-packages\matplotlib\backends\backend_agg.py", line 215, in get_text_width_height_descent self.mathtext_parser.parse(s, self.dpi, prop) File "D:\Anaconda\Lib\site-packages\matplotlib\mathtext.py", line 86, in parse return self._parse_cached(s, dpi, prop, antialiased, load_glyph_flags) File "D:\Anaconda\Lib\site-packages\matplotlib\mathtext.py", line 100, in _parse_cached box = self._parser.parse(s, fontset, fontsize, dpi) File "D:\Anaconda\Lib\site-packages\matplotlib\_mathtext.py", line 2170, in parse result = self._expression.parseString(s) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 1131, in parse_string loc, tokens = self._parse(instring, 0) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 921, in _parseCache value = self._parseNoCache(instring, loc, doActions, callPreParse) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 817, in _parseNoCache loc, tokens = self.parseImpl(instring, pre_loc, doActions) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 3886, in parseImpl loc, exprtokens = e._parse(instring, loc, doActions) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 921, in _parseCache value = self._parseNoCache(instring, loc, doActions, callPreParse) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 817, in _parseNoCache loc, tokens = self.parseImpl(instring, pre_loc, doActions) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 4891, in parseImpl return super().parseImpl(instring, loc, doActions) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 4790, in parseImpl loc, tokens = self_expr_parse(instring, loc, doActions) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 921, in _parseCache value = self._parseNoCache(instring, loc, doActions, callPreParse) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 817, in _parseNoCache loc, tokens = self.parseImpl(instring, pre_loc, doActions) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 3886, in parseImpl loc, exprtokens = e._parse(instring, loc, doActions) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 921, in _parseCache value = self._parseNoCache(instring, loc, doActions, callPreParse) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 856, in _parseNoCache tokens = fn(instring, tokens_start, ret_tokens) File "D:\Anaconda\Lib\site-packages\pyparsing\core.py", line 291, in wrapper ret = func(*args[limit:]) File "D:\Anaconda\Lib\site-packages\matplotlib\_mathtext.py", line 2206, in non_math symbols = [Char(c, self.get_state()) for c in s] File "D:\Anaconda\Lib\site-packages\matplotlib\_mathtext.py", line 1091, in __init__ self._update_metrics() File "D:\Anaconda\Lib\site-packages\matplotlib\_mathtext.py", line 1097, in _update_metrics metrics = self._metrics = self.fontset.get_metrics( File "D:\Anaconda\Lib\site-packages\matplotlib\_mathtext.py", line 286, in get_metrics info = self._get_info(font, font_class, sym, fontsize, dpi) File "D:\Anaconda\Lib\site-packages\matplotlib\_mathtext.py", line 375, in _get_info font, num, slanted = self._get_glyph(fontname, font_class, sym) File "D:\Anaconda\Lib\site-packages\matplotlib\_mathtext.py", line 710, in _get_glyph return super()._get_glyph(fontname, font_class, sym) File "D:\Anaconda\Lib\site-packages\matplotlib\_mathtext.py", line 648, in _get_glyph _log.info("Substituting symbol %s from %s", sym, family) Message: 'Substituting symbol %s from %s' Arguments: ('³', 'STIXGeneral')修改后输出完整代码,并且生成的图片的字体需要调整,显示不出来单位
最新发布
07-27
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值