利用 Matplotlib 绘图
各类绘图
## 导入包
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns
## 参数设置
#-------------------------01-------------------------
large = 22; med = 16; small = 12
params = {'axes.titlesize': large,
'legend.fontsize': med,
'figure.figsize': (16, 10),
'axes.labelsize': med,
'axes.titlesize': med,
'xtick.labelsize': med,
'ytick.labelsize': med,
'figure.titlesize': large}
plt.rcParams.update(params)
plt.style.use('seaborn-whitegrid')
sns.set_style("white")
# 显示中文
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
## box
#-------------------------01-------------------------
fig=plt.figure(figsize=(10,6), dpi= 80)
ax1=fig.add_subplot(121)
sns.boxplot(x=personal_df.minutes,ax=ax1)
ax1.set_xlabel('个人客户')
ax1.set_xlim(0,500)
ax1.set_title('空调开启时长分布', fontsize=16, loc='center')
ax1.legend()
#-------------------------02-------------------------
fig=plt.figure(figsize=(12,6), dpi= 80)
ax2=fig.add_subplot(121)
sns.boxplot(x='company_type', y='minutes',data = company_df,ax=ax2)
ax2.set_xlabel('公司客户')
ax2.set_title('空调开启时长分布', fontsize=16, loc='center')
ax2.legend()
## bar
#-------------------------01-------------------------
plt.figure(figsize=(10,6),dpi = 72)
ax = sns.barplot(x=p_vehacfanspeed_times_mean_df.index.values, y=p_vehacfanspeed_times_mean_df.times_minutes.values, palette="rocket")
ax.axhline(0, color="k", clip_on=False)
ax.set_ylabel('平均时长/分钟')
ax.set_xlabel('空调风速')
# ax.set_axis_off()
ax.set_title('个人用户', fontsize=24, loc="center", pad=10)
# Annotate Text
for i, cty in enumerate(p_vehacfanspeed_times_mean_df.times_minutes.values):
ax.text(i, cty+0.5, round(cty, 1),fontsize=12, horizontalalignment='center')
#-------------------------02-------------------------
otal_width, n = 0.8, 2 # 有多少个类型,只需更改n即可
width = total_width / n # the width of the bars
# x = x - (total_width - width) / 2
fig, ax = plt.subplots(figsize=(10,8),dpi= 80)
rects1 = ax.bar(company_out_freq_count_s.index.values+width, company_out_freq_count_s.values, width,label = '公司客户', color='r')
rects2 = ax.bar(personal_out_freq_count_s.index.values, personal_out_freq_count_s.values, width,label = '个人客户', color='b')
def autolabel(rects):
# attach some text labels
for rect in rects:
height = rect.get_height()
ax.text(rect.get_x() + rect.get_width()/2., 1.02*height,
'%d' % int(height),
ha='center', va='bottom')
autolabel(rects1)
autolabel(rects2)
ax.set_ylabel('频数')
ax.set_title('个人/公司车辆一天出行次数分布')
plt.legend()
## distplot
#-------------------------01-------------------------
fig=plt.figure(figsize=(16,6), dpi= 80)
ax1=fig.add_subplot(121) #1*2的图形 在第一个位置
sns.distplot(company_out_df['delta_time_h'], color="dodgerblue", label="company_out", hist_kws={'alpha':.7}, kde_kws={'linewidth':3},ax=ax1)
sns.distplot(personal_out_df['delta_time_h'], color="orange", label="personal_out", hist_kws={'alpha':.7}, kde_kws={'linewidth':3},ax=ax1)
ax1.set_ylim(0,1)
# Decoration
ax1.set_xlabel("单次出行时长/h")
ax1.set_title('单次出行时长密度分布', fontsize=22)
ax1.legend()
## pie
#-------------------------01-------------------------
fig = plt.figure(figsize=(12, 8), dpi= 80)
def func(pct, allvals):
absolute = int(pct/100.*np.sum(allvals))
return "{:.1f}% ({:d} )".format(pct, absolute)
ax1=fig.add_subplot(221)
personal_charge_data = [personal_fcharge_car_nums, personal_scharge_car_nums]
categories = pd.Series(data = ['快充', '慢充'])
explode = [0,0.1]
wedges, texts, autotexts = ax1.pie(personal_charge_data,
autopct=lambda pct: func(pct, personal_charge_data),
textprops=dict(color="w"),
colors=plt.cm.Dark2.colors,
startangle=140,
explode=explode)
# ax1.legend(wedges, categories, title="充电类型", loc="center left", bbox_to_anchor=(1, 0, 0.5, 1))
ax1.set_title('个人充电类型占比')
相关资源
帮助文档:
Matplotlib tutorial for beginner: https://github.com/rougier/matplotlib-tutorial
图之典:http://tuzhidian.com/
例子:
effective data visualization
Matplotlib 中文文档
notebook_matplotlib_visualizations.ipynb
top-50-matplotlib-visualizations-the-master-plots-python
art_of_data_visualization: text pre-processing
利用 Matplotlib 绘图的更多相关文章
- python中利用matplotlib绘图可视化知识归纳
python中利用matplotlib绘图可视化知识归纳: (1)matplotlib图标正常显示中文 import matplotlib.pyplot as plt plt.rcParams['fo ...
- Matplotlib绘图双纵坐标轴设置及控制设置时间格式
双y轴坐标轴图 今天利用matplotlib绘图,想要完成一个双坐标格式的图. fig=plt.figure(figsize=(20,15)) ax1=fig.add_subplot(111) ax1 ...
- matplotlib绘图基本用法-转自(http://blog.csdn.net/mao19931004/article/details/51915016)
本文转载自http://blog.csdn.net/mao19931004/article/details/51915016 <!DOCTYPE html PUBLIC "-//W3C ...
- 【CITE】利用鼠标绘图C#
实例018 利用鼠标绘图 光盘位置:光盘\MR\01\018 在常用的画图软件中,用户一般都可以通过鼠标在其中绘图,那么该功能是如何实现的呢?本实例将讲解如何使用C#实现通过拖动鼠标在窗体上绘图的功能 ...
- 利用WPF绘图
C#入门经典 25章的一个例子,利用WPF绘图. XAML: <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/p ...
- matplotlib 绘图
http://blog.csdn.net/jkhere/article/details/9324823 都打一遍 5 matplotlib-绘制精美的图表 matplotlib 是python最著名的 ...
- python实战学习之matplotlib绘图续
学习完matplotlib绘图可以设置的属性,还需要学习一下除了折线图以外其他类型的图如直方图,条形图,散点图等,matplotlib还支持更多的图,具体细节可以参考官方文档:https://matp ...
- matplotlib绘图的基本操作
转自:Laumians博客园 更简明易懂看Matplotlib Python 画图教程 (莫烦Python)_演讲•公开课_科技_bilibili_哔哩哔哩 https://www.bilibili. ...
- python实战学习之matplotlib绘图
matplotlib 是最流行的Python底层绘图库,主要做数据可视化图表 可以将数据可视化,能够更直观的呈现数据 matplotlib绘图基本要点 首先实现一个简单的绘图 # 导入pyplot f ...
随机推荐
- javaScript 对象的hasOwnProperty方法打印window自定义属性
for (var name in window) { if (window.hasOwnProperty(name)) { window.console.log ( name + " : & ...
- AWS EC2 在WINDOWS平台使用FSX
最近在使用AWS FSX产品 折腾了很久才解决,记录下,防止下次再入坑: 使用FSX 必须要使用AD(Active Directory),而一般很少公司会在AWS 把自己公司的域控部署上去. 为了解决 ...
- 英语apyrite红碧玺apyrite单词
红碧玺(apyrite)是粉红.桃红.玫瑰红.深红.紫红等以红色调为主的碧玺,矿物学上主要属于锂电气石和镁电气石.红色起因可能与微量锰及锂和铯有关. 红色是碧玺中价值最高的,其中以紫红色和玫瑰红色最佳 ...
- android中实现service动态更新UI界面
案例:通过service向远程服务器发送请求,根据服务器返回的结果动态更新主程序UI界面,主程序可实时关闭或重启服务. 注册BroadcastReceiver 在主程序activity中注册一个Bro ...
- vim巧妙用法
1. 块复制 按ctrl+v键,编辑框最下方将出现"可视 块"字样 使用方向键移动光标,选择矩形区域内的文字 y 键复制文本: d 键剪切文本:p 键粘贴文本 按shift+v键, ...
- 字典排序MD5生成代码
/* * Project: payment.framework * * File Created at 2017年12月23日 * * Copyright 2016 CMCC Corporation ...
- SpringCloud学习第二章-SpringBoot
SpringCloud 学习前提 SpringCloud是基于SpringBoot构建的,因此他延续了SpringBoot的契约模式以及开发方式.下面将讲到SpringBoot的构建方式. S ...
- Jackson 将数组json转List泛型
闲话不多说,直接上干活,见代码就懂. package com.zzcloud.job.common; import java.util.ArrayList; import java.util.List ...
- Go入门:创建第一个Go工程
前言 我是一名iOS开发. 因为公司后台都用的Go. 因为对服务端不了解. 所以想自己学习学习. 环境 因为自己的电脑是mac.然后在阿里云买的是centOS的服务器. 所以下面搭建的环境都是在cen ...
- Exploit Kit——hacker入侵web,某iframe中将加载RIG EK登录页面,最终下载并执行Monero矿工
RIG Exploit Kit使用PROPagate注入技术传播Monero Miner from:https://www.4hou.com/technology/12310.html 导语:Fire ...