利用 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 ...
随机推荐
- 面向对象——组合、封装、访问限制机制、property内置装饰器
面向对象--组合.封装.访问限制机制.property 组合 什么是组合? 组合指的是一个对象中,包含另一个或多个对象 为什么要组合? 减少代码的冗余 怎么用组合? # 综合实现 # 父类 class ...
- spark的存储系统--BlockManager源码分析
spark的存储系统--BlockManager源码分析 根据之前的一系列分析,我们对spark作业从创建到调度分发,到执行,最后结果回传driver的过程有了一个大概的了解.但是在分析源码的过程中也 ...
- box-shadow 模糊半径与扩展半径
关于box-shadow的基本用法参阅CSS3 box-shadow一章节. 此属性用来设置元素的阴影效果,语法结构如下: box-shadow:h-shadow v-shadow blur spre ...
- JavaScript 之 offset 、client、scroll
下面这三组是关于元素大小.位置相关的属性 一.offset 偏移量 1.offsetParent 该属性获取距离当前元素最近的定位父元素,如果没有定位父元素此时是 body 元素 2.offsetLe ...
- react的事件处理为什么要bind this 改变this的指向?
react的事件处理会丢失this,所以需要绑定,为什么会丢失this? 首先来看摘自官方的一句话: You have to be careful about the meaning of this ...
- 为什么要将action实例设置为多例
转载自 https://zhidao.baidu.com/question/622162406833405932.html struts2中action是多例的,即一个session产生一个actio ...
- js 正则表达式2
对于某些特殊的字符,我们 必须转义一下才可以使用.(注意一点,我们使用那些需要转义的字符是通过"\"+相应的字符来构成的,记住是"\",而不也是"/& ...
- 201671010406-丁家辉-实验十四 团队项目评审&课程学习总结
实验十四 团队项目评审&课程学习总结 项目 内容 这个作业属于哪个课程 [教师博客主页链接] 这个作业的要求在哪里 [作业链接地址] 作业学习目标 (1)掌握软件项目评审会流程(2)反思总结课 ...
- 基线baseline
vertical:元素的垂直对齐方式:默认 vertical:baseline ,一行内对其基线,如下图就是以父元素基线对齐,上图vertical:top 垂直对齐方式,行内元素头部对齐.
- tcpdump 筛选抓包
安装 $ sudo yum install tcpdump 常用参数 -i interface: 设置抓取的网卡名(可以使用 -i any 抓取所有网卡的数据包) tcpdump -i eth0 -D ...