matplotlib绘制柱状图之基本配置——万能模板案例
目录
连接数据库案例
柱状图绘制
堆叠柱状图——尾部
堆叠柱状图——头部
双维柱状图模板
每文一语
连接数据库案例
import pymysql # pip install pymysql安装,用来连接mysql数据库
import pandas as pd # 用来做数据导入(pd.read_sql_query() 执行sql语句得到结果df)
import matplotlib.pyplot as plt # 用来画图(plt.plot()折线图, plt.bar()柱状图,....)plt.rcParams['font.sans-serif'] = 'SimHei' # 设置中文字体支持中文显示
plt.rcParams['axes.unicode_minus'] = False # 支持中文字体下显示'-'号# figure 分辨率 800x600
plt.rcParams['figure.figsize'] = (6,4) # 8x6 inches
plt.rcParams['figure.dpi'] = 100 # 100 dot per inch# 1. 连接MySQL数据库: 创建数据库连接
conn = pymysql.connect(host='127.0.0.1',port=3306,user='root',password='root',db='mydb')# 2 创建一个sql语句
# -- 统计每个销售经理2019年的利润总额sql = r"SELECT MANAGER, SUM(PROFIT) as TotalProfit FROM orders where FY='2019' group by MANAGER"# 3 执行sql语句获取统计查询结果
df = pd.read_sql_query(sql, conn)# 4. 基于DataFrame结果集作图
plt.figure(figsize=(6,4),dpi=120)
plt.bar(df['MANAGER'], df['TotalProfit'])
plt.grid(axis='y')
plt.title("每个销售经理2019年的利润总额")
plt.ylabel("利润额")
for index,value in df['TotalProfit'].items():plt.text(index,value,round(value),ha='center',va='bottom',color='k')
柱状图绘制
import matplotlib.pyplot as plt# 设置中文字体
plt.rcParams['axes.unicode_minus'] = False # 不使用中文减号
plt.rcParams['font.sans-serif'] = 'FangSong' # 设置字体为仿宋(FangSong)plt.figure(figsize=(5,3),dpi=120)plt.bar(data.index, data.values, width=0.1, align='edge', bottom=100000 )
# plt.grid(axis='x')
plt.title("每个销售经理2019年的利润总额")
plt.ylabel("利润额")
plt.figure(figsize=(6,6),dpi=100)
plt.bar(data.index, data.values, width=0.6, align='edge', bottom=0-data.values )
plt.bar(data.index, data.values, width=0.6, align='edge', bottom=0 )
plt.grid(axis='x')
plt.title("每个销售经理2019年的利润总额")
plt.ylabel("利润额")
堆叠柱状图——尾部
txtfile = r'orders.txt'
df_txt = pd.read_csv(txtfile)
profit = df_txt[df_txt['FY']==2019].groupby('OPERATOR')['PROFIT'].sum()
price = df_txt[df_txt['FY']==2019].groupby('OPERATOR')['PRICE'].sum()plt.rcParams['font.sans-serif'] = 'KaiTi' # 设置全局字体为中文 楷体
plt.rcParams['axes.unicode_minus'] = False # 不使用中文减号plt.figure(figsize=(10,4),dpi=120)
plt.bar(price.index, price.values, label='price' )
plt.bar(profit.index, profit.values, label='profit' )# plt.grid(axis='x') #网格线
plt.title("每个销售经理2019年的利润总额")
plt.ylabel("利润额",size=12)
plt.xlabel("姓名",size=12)
plt.legend()
堆叠柱状图——头部
txtfile = r'orders.txt'
df_txt = pd.read_csv(txtfile)
profit = df_txt[df_txt['FY']==2019].groupby('OPERATOR')['PROFIT'].sum()
price = df_txt[df_txt['FY']==2019].groupby('OPERATOR')['PRICE'].sum()plt.figure(figsize=(6,6),dpi=100)
plt.bar(price.index, price.values, label='price' )
plt.bar(profit.index, profit.values, label='profit', bottom=price.values ) # 在price头上画profitplt.grid(axis='x')
plt.title("每个销售经理2019年的利润总额")
plt.ylabel("利润额")
plt.legend()
双维柱状图模板
import numpy as np
txtfile = r'orders.txt'
df_txt = pd.read_csv(txtfile)
profit = df_txt[df_txt['FY']==2019].groupby('OPERATOR')['PROFIT'].sum()
price = df_txt[df_txt['FY']==2019].groupby('OPERATOR')['PRICE'].sum()plt.rcParams['font.sans-serif'] = 'KaiTi' # 设置全局字体为中文 楷体
plt.rcParams['axes.unicode_minus'] = False # 不使用中文减号
plt.figure(figsize=(10,6),dpi=120)# 如果要改变柱子在X轴的位置,需要设置Xticks的数值
x = price.index
x_ticks = np.arange(price.size)# 将两个柱子的X坐标错开,一个减去柱子宽度的一般,一个加上柱子宽度的一半
width = 0.4
plt.bar(x_ticks-(width/2), price.values, label='price', width=width )
plt.bar(x_ticks+(width/2), profit.values, label='profit', width=width) # 在price头上画profitplt.xticks(x_ticks,x)plt.grid(axis='x')
plt.title("每个销售经理2019年的利润总额")
plt.ylabel("利润额")
plt.legend()
x = df['统计时间']
x_ticks = np.arange(df['统计时间'].size)# 将两个柱子的X坐标错开,一个减去柱子宽度的一般,一个加上柱子宽度的一半
total_width, n = 0.8, 3
width = total_width / n
x1 = x_ticks - (total_width - width) / 2
plt.bar(x1,df['粮食产量增长(%)'], label='粮食', width=width )
plt.bar(x1+width,df['棉花增长(%)'], label='棉花', width=width)
plt.bar(x1+(width*2),df['油料增长(%)'],label='油料', width=width)
plt.xticks(x_ticks,x)plt.grid(axis='x') #添加网格
plt.title("2010-2021年粮棉油增长率柱状图",size=17,y=1.02)
plt.xlabel('时间',font_dict)
plt.ylabel('增长率(%)',font_dict)
plt.legend()
每文一语
当你拼尽全力却不知道什么是快乐,你该思考自己的人生了
matplotlib绘制柱状图之基本配置——万能模板案例相关推荐
- matplotlib绘制饼图之基本配置——万能模板案例
目录 饼图的概念 连接数据库绘制饼图案例(pandas画图) 显示百分比 饼图常见参数 扇区分离饼图 添加颜色 添加阴影 显示百分比 控制起始角度 将饼图放置在坐标轴 双饼图显示 饼图万能模板 每文一 ...
- matplotlib绘制直方图之基本配置——万能模板案例
目录 直方图介绍 绘制直方图的参数(plt.hist()) 连接数据库进行直方图绘制案例 使用dataframe里面的plot函数进行绘制(万能模板) 绘制多个子图(多子图直方图案例模板) 概率分布直 ...
- matplotlib绘制散点图之基本配置——万能模板案例
目录 散点图 散点图一行代码显示 加颜色的散点图 颜色深浅表示数值大小 散点图显示颜色和大小 自定义图表散点图 散点图万能模板 其他模板 每文一语 散点图 散点图是指在回归分析中,数据点在直角坐标系平 ...
- matplotlib绘制雷达图之基本配置——万能模板案例
目录 介绍 应用场景 案例一(成绩雷达图重叠) 案例二(成绩雷达图左右图) 极坐标 每文一语 介绍 雷达图是以从同一点开始的轴上表示的三个或更多个定量变量的二维图表的形式显示多变量数据的图形方法.轴的 ...
- Python使用matplotlib绘制柱状图(bar plot)实战:水平条形图、垂直条形图、分组条形图、堆叠条形图
Python使用matplotlib绘制柱状图(bar plot)实战:水平条形图.垂直条形图.分组条形图.堆叠条形图 目录
- Python——使用matplotlib绘制柱状图
Python--使用matplotlib绘制柱状图 1.基本柱状图 首先要安装matplotlib(http://matplotlib.org/api/pyplot_api.html#matplotl ...
- Python Matplotlib绘制柱状图(bar和barh函数)详解
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...
- 如何在地图上画柱状图python_python使用matplotlib绘制柱状图教程
Matplotlib的概念这里就不多介绍了,关于绘图库Matplotlib的安装方法:点击这里 小编之前也和大家分享过python使用matplotlib实现的折线图和制饼图效果,感兴趣的朋友们也可以 ...
- 用python绘制柱状图模版_python使用matplotlib绘制柱状图教程
Matplotlib的概念这里就不多介绍了 小编之前也和大家分享过python使用matplotlib实现的折线图和制饼图效果,感兴趣的朋友们也可以点击查看,下面来看看python使用matplotl ...
最新文章
- CUDA 8混合精度编程
- AngularJS的使用方法
- 【Qt开发】编译时报undefined reference to问题的解决方案
- 常考数据结构与算法:两数之和
- 剑指offer之21-25题解
- java圆柱的底面积体积,计算圆柱的底面积和体积
- 线程中发送消息阻塞问题解决
- 图片向上滚动字幕代码html,如何通过制作滚动字幕的软件实现这种片尾的向上滚动字幕效果...
- 在Ubuntu下设置笔记本外接显示器(双显示器)
- 08-09 性能测试--CPU分析
- Python二:【ImageEnhance】+【PIL模块】如何利用python实现图像增强
- CnCiswumWN
- 库管小帮手服务器修复,文达库管小帮手
- 关于Mysql模糊查询下划线的问题
- [題解]luogu_P2055假期的宿舍(二分圖最大匹配)
- html5玻璃下雨,下雨天外后视镜总是沾满水珠 6个妙招帮你解决这个难题
- Log4cxx使用小结
- Ultra96安装指导和无线配置
- 初步的解了Pathon
- 网页多次刷新出不来怎么办