網站首頁 編程語言 正文
首先如果柱狀圖中有中文,比如X軸和Y軸標簽需要寫中文,解決中文無法識別和亂碼的情況,加下面這行代碼就可以解決了:
plt.rcParams['font.sans-serif'] = ['SimHei'] # 解決中文亂碼
以下總共展示了三種畫不同需求的柱狀圖:
畫多組兩個并列的柱狀圖:
import matplotlib import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = ['SimHei'] labels = ['G1', 'G2', 'G3', 'G4', 'G5'] men_means = [20, 34, 30, 35, 27] women_means = [25, 32, 34, 20, 25] x = np.arange(len(labels)) # the label locations width = 0.35 # the width of the bars fig, ax = plt.subplots() rects1 = ax.bar(x - width/2, men_means, width, label='Men') rects2 = ax.bar(x + width/2, women_means, width, label='Women') # Add some text for labels, title and custom x-axis tick labels, etc. ax.set_ylabel('Scores') ax.set_title('Scores by group and gender') ax.set_xticks(x) ax.set_xticklabels(labels) ax.legend() def autolabel(rects): """Attach a text label above each bar in *rects*, displaying its height.""" for rect in rects: height = rect.get_height() ax.annotate('{}'.format(height), xy=(rect.get_x() + rect.get_width() / 2, height), xytext=(0, 3), # 3 points vertical offset textcoords="offset points", ha='center', va='bottom') autolabel(rects1) autolabel(rects2) fig.tight_layout() plt.show()
繪制好的柱狀圖如下:
畫兩組5個并列的柱狀圖:
import matplotlib import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif']=['SimHei'] # 解決中文亂碼 labels = ['第一項', '第二項'] a = [4.0, 3.8] b = [26.9, 48.1] c = [55.6, 63.0] d = [59.3, 81.5] e = [89, 90] x = np.arange(len(labels)) # 標簽位置 width = 0.1 # 柱狀圖的寬度,可以根據自己的需求和審美來改 fig, ax = plt.subplots() rects1 = ax.bar(x - width*2, a, width, label='a') rects2 = ax.bar(x - width+0.01, b, width, label='b') rects3 = ax.bar(x + 0.02, c, width, label='c') rects4 = ax.bar(x + width+ 0.03, d, width, label='d') rects5 = ax.bar(x + width*2 + 0.04, e, width, label='e') # 為y軸、標題和x軸等添加一些文本。 ax.set_ylabel('Y軸', fontsize=16) ax.set_xlabel('X軸', fontsize=16) ax.set_title('這里是標題') ax.set_xticks(x) ax.set_xticklabels(labels) ax.legend() def autolabel(rects): """在*rects*中的每個柱狀條上方附加一個文本標簽,顯示其高度""" for rect in rects: height = rect.get_height() ax.annotate('{}'.format(height), xy=(rect.get_x() + rect.get_width() / 2, height), xytext=(0, 3), # 3點垂直偏移 textcoords="offset points", ha='center', va='bottom') autolabel(rects1) autolabel(rects2) autolabel(rects3) autolabel(rects4) autolabel(rects5) fig.tight_layout() plt.show()
繪制好的柱狀圖如下:
3. 要將柱狀圖的樣式畫成適合論文中使用的黑白并且帶花紋的樣式:
import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = ['SimHei'] # 解決中文亂碼 labels = ['第一項', '第二項'] a = [50, 80] b = [37, 69] c = [78, 60] d = [66, 86] e = [80, 95] # marks = ["o", "X", "+", "*", "O"] x = np.arange(len(labels)) # 標簽位置 width = 0.1 # 柱狀圖的寬度 fig, ax = plt.subplots() rects1 = ax.bar(x - width * 2, a, width, label='a', hatch="...", color='w', edgecolor="k") rects2 = ax.bar(x - width + 0.01, b, width, label='b', hatch="oo", color='w', edgecolor="k") rects3 = ax.bar(x + 0.02, c, width, label='c', hatch="++", color='w', edgecolor="k") rects4 = ax.bar(x + width + 0.03, d, width, label='d', hatch="XX", color='w', edgecolor="k") rects5 = ax.bar(x + width * 2 + 0.04, e, width, label='e', hatch="**", color='w', edgecolor="k") # 為y軸、標題和x軸等添加一些文本。 ax.set_ylabel('Y', fontsize=16) ax.set_xlabel('X', fontsize=16) ax.set_title('標題') ax.set_xticks(x) ax.set_xticklabels(labels) ax.legend()
以上
總結
原文鏈接:https://blog.csdn.net/weixin_44293949/article/details/114590319
相關推薦
- 2022-10-19 python基礎教程之csv文件的寫入與讀取_python
- 2023-07-24 在excel里寫一行數字,復制后直接粘貼到表格不同列
- 2022-08-20 在python中讀取和寫入CSV文件詳情_python
- 2022-11-07 ASP.NET?MVC通過勾選checkbox更改select的內容_實用技巧
- 2022-05-20 C++實現簡單學生信息管理系統_C 語言
- 2023-12-24 mybatis-plus代碼生成器使用(generator)
- 2022-04-12 詳解pyqt中解決國際化tr()函數不起作用的問題_python
- 2022-09-26 ASP.NET?Core?6最小API中使用日志和DI示例詳解_ASP.NET
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支