matplotlib 的几种柱状图
1、x 表示数量,y 表示名字
1 import matplotlib.pyplot as plt 2 3 4 dic = {'a': 22, 'b': 10, 'c': 6, 'd': 4, 'e': 2, 'f': 10, 'g': 24, 'h': 16, 'i': 1, 'j': 12} 5 s = sorted(dic.items(), key=lambda x: x[1], reverse=False) # 对dict 按照value排序 True表示翻转 ,转为了列表形式 6 print(s) 7 x_x = [] 8 y_y = [] 9 for i in s: 10 x_x.append(i[0]) 11 y_y.append(i[1]) 12 13 x = x_x 14 y = y_y 15 16 fig, ax = plt.subplots() 17 ax.barh(x, y, color="deepskyblue") 18 labels = ax.get_xticklabels() 19 plt.setp(labels, rotation=0, horizontalalignment='right') 20 21 for a, b in zip(x, y): 22 plt.text(b+1, a, b, ha='center', va='center') 23 ax.legend(["label"],loc="lower right") 24 25 plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签 26 plt.ylabel('name') 27 plt.xlabel('数量') 28 plt.rcParams['savefig.dpi'] = 300 # 图片像素 29 plt.rcParams['figure.dpi'] = 300 # 分辨率 30 plt.rcParams['figure.figsize'] = (15.0, 8.0) # 尺寸 31 plt.title("title") 32 33 plt.savefig('D:\\result.png') 34 plt.show()
2、x 表示名字,y 表示数量,多重组合
import matplotlib.pyplot as plt import numpy as npx = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'] y1 = [6, 5, 8, 5, 6, 6, 8, 9, 8, 10] y2 = [5, 3, 6, 4, 3, 4, 7, 4, 4, 6] y3 = [4, 1, 2, 1, 2, 1, 6, 2, 3, 2]plt.bar(x, y1, label="label1", color='red') plt.bar(x, y2, label="label2",color='orange') plt.bar(x, y3, label="label3", color='lightgreen')plt.xticks(np.arange(len(x)), x, rotation=0, fontsize=10) # 数量多可以采用270度,数量少可以采用340度,得到更好的视图 plt.legend(loc="upper left") # 防止label和图像重合显示不出来 plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签 plt.ylabel('数量') plt.xlabel('name') plt.rcParams['savefig.dpi'] = 300 # 图片像素 plt.rcParams['figure.dpi'] = 300 # 分辨率 plt.rcParams['figure.figsize'] = (15.0, 8.0) # 尺寸 plt.title("title") plt.savefig('D:\\result.png') plt.show()
3、x为线路,y 为值,多重组合
import matplotlib.pyplot as plt import numpy as npsize = 10 y1 = [6, 5, 8, 5, 6, 6, 8, 9, 8, 10] y2 = [5, 3, 6, 4, 3, 4, 7, 4, 4, 6] y3 = [4, 1, 2, 1, 2, 1, 6, 2, 3, 2]x = np.arange(size) total_width, n = 0.8, 3 # 有多少个类型,只需更改n即可 width = total_width / n x = x - (total_width - width) / 2plt.bar(x, y1, width=width, label='label1',color='red') plt.bar(x + width, y2, width=width, label='label2',color='deepskyblue') plt.bar(x + 2 * width, y3, width=width, label='label3', color='green')plt.xticks() plt.legend(loc="upper left") # 防止label和图像重合显示不出来 plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签 plt.ylabel('value') plt.xlabel('line') plt.rcParams['savefig.dpi'] = 300 # 图片像素 plt.rcParams['figure.dpi'] = 300 # 分辨率 plt.rcParams['figure.figsize'] = (15.0, 8.0) # 尺寸 plt.title("title") plt.savefig('D:\\result.png') plt.show()
4、多个柱状图显示值,X轴显示x本应有的值
使用标签 tick_label
import matplotlib.pyplot as plt import numpy as npname = ["name1","name2","name3","name4","name5","name6","name7","name8","name9","name10"] y1 = [6, 5, 8, 5, 6, 6, 8, 9, 8, 10] y2 = [5, 3, 6, 4, 3, 4, 7, 4, 4, 6] y3 = [4, 1, 2, 1, 2, 1, 6, 2, 3, 2]x = np.arange(len(name)) width = 0.25plt.bar(x, y1, width=width, label='label1',color='darkorange') plt.bar(x + width, y2, width=width, label='label2', color='deepskyblue', tick_label=name) plt.bar(x + 2 * width, y3, width=width, label='label3', color='green')# 显示在图形上的值 for a, b in zip(x,y1):plt.text(a, b+0.1, b, ha='center', va='bottom') for a,b in zip(x,y2):plt.text(a+width, b+0.1, b, ha='center', va='bottom') for a,b in zip(x, y3):plt.text(a+2*width, b+0.1, b, ha='center', va='bottom')plt.xticks() plt.legend(loc="upper left") # 防止label和图像重合显示不出来 plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签 plt.ylabel('value') plt.xlabel('line') plt.rcParams['savefig.dpi'] = 300 # 图片像素 plt.rcParams['figure.dpi'] = 300 # 分辨率 plt.rcParams['figure.figsize'] = (15.0, 8.0) # 尺寸 plt.title("title") plt.savefig('D:\\result.png') plt.show()
5、对不同区段的值使用不同的颜色
import matplotlib.pyplot as pltx=[1,2,3,4,5,6,7,8,9,10,11,12] y=[6,3,9,2,6,16,8,10,4,14,18,6]def get_color(x, y):"""对销量不同的区段标为不同的颜色"""color = []for i in range(len(x)):if y[i] < 5:color.append("green")elif y[i] < 10:color.append("lightseagreen")elif y[i] < 15:color.append("gold")else:color.append("coral")return colorplt.bar(x,y,label="销量",color=get_color(x,y), tick_label=x)for a,b in zip(x, y):plt.text(a, b+0.1, b, ha='center', va='bottom')plt.legend(loc="upper left") plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签 plt.ylabel('销量') plt.xlabel('date') plt.rcParams['savefig.dpi'] = 300 # 图片像素 plt.rcParams['figure.dpi'] = 300 # 分辨率 plt.rcParams['figure.figsize'] = (15.0, 8.0) # 尺寸 plt.title("月份销量的分布情况") plt.savefig('D:\\result.png') plt.show()
转载于:https://www.cnblogs.com/BackingStar/p/10986955.html
matplotlib 的几种柱状图相关推荐
- matplotlib柱状图上方显示数据_使用 matplotlib 的两种姿势
点击上"蓝字"关注我们 本文环境说明熊猫本次用的是 Anaconda 的 jupyter notebook 编写的本文代码.今天用到的库都是已经集成好的,无须另行安装.每个库的版本 ...
- 【Python】Matplotlib分层绘制投影柱状图
问题描述 我们在2D平面上可以绘制柱状图,如果要绘制多组数据的柱状图,则可以尝试使用堆叠柱状图或者并列柱状图. 但是,如果数据量过多,那么使用这两种柱状图展示数据的可视化效果就不是很理想. 这时候,我 ...
- Matplotlib 2 |折线图| 柱状图| 堆叠图| 面积图| 填图| 饼图| 直方图| 散点图| 极坐标| 图箱型图
目录 Matplotlib 2 |折线图| 柱状图| 堆叠图| 面积图| 填图| 饼图| 直方图| 散点图| 极坐标| 图箱型图 1.基本图表绘制 plt.plot() ts.plot() 由Seri ...
- python使用matplotlib可视化堆叠的柱状图(stacked bar plot)、多个类别的数据在分类变量层面累积堆叠起来
python使用matplotlib可视化堆叠的柱状图(stacked bar plot).多个类别的数据在分类变量层面累积堆叠起来 目录
- Python使用matplotlib绘制分组对比柱状图(bar plot)可视化时汉语(中文)标签显示成了框框□□、什么情况、我们有解决方案
Python使用matplotlib绘制分组对比柱状图可视化时(bar plot)汉语(中文)标签显示成了框框□□.什么情况.我们有解决方案 目录
- python如何安装matplotlib_详解python安装matplotlib库三种失败情况
(可能只有最后一句命令有用,可能全篇都没用) (小白方法,可能只适用于本人情况) 安装matplotlib时,出现的三种失败情况 1.read timed out 一开始我在pycharm终端使用pi ...
- python画柱状图-python 使用 matplotlib.pyplot来画柱状图和饼图
导入包 import matplotlib.pyplot as plt 柱状图 最简柱状图 # 显示高度 def autolabel(rects): for rect in rects: height ...
- python中matplotlib库饼图_python 使用 matplotlib.pyplot来画柱状图和饼图
导入包 import matplotlib.pyplot as plt 柱状图 最简柱状图 # 显示高度 def autolabel(rects): for rect in rects: height ...
- 【python学习】-matplotlib绘制双坐标柱状图
matplotlib绘制双坐标柱状图 单坐标柱状图绘制 双坐标柱状图绘制 图形美化 本文章记录双坐标柱状图的绘制过程 单坐标柱状图绘制 #来自官网的例子 import matplotlib.pyplo ...
最新文章
- linux命令速查手册_值得收藏!Linux系统常用命令速查手册
- Ubuntu Linux配置Nginx+MySQL+PHP+phpMyAdmin详细步骤
- linux 输出重定向
- python建立列表_python创建列表和向列表添加元素的实现方法
- labelimg如何调整框的颜色_PS学习之旅:如何更好调整画面明暗?明度、色阶详细介绍,收藏...
- spring之Bean的生命周期
- c语言高级程序设计第五版PDF,C语言高级编程.pdf
- 学习用MaxScipt批处理Max文件
- 《2017微信春节数据报告》出炉 初一到初五微信红包收发总量达到460亿个
- SpringBoot2.4.2+Vue集成Activiti6流程引擎
- Linux系统磁盘分区格式MBR格式转换GPT
- javax.validation校验整理
- 平安智盈人寿保险计算
- Nao机器人如何实现视频监控
- GIT - 安装、设置和帮助
- vue引入51la流量监控
- PHP empty() 的判断
- 凤凰大视野----冷暖人生: 记录平凡人的普通人生
- 搭建Android开发环境Win7-64位
- 一位创业者创业失败后,成功的做了一个创业孵化器!