利用 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 ...
随机推荐
- String.Operation
// 字符串切割 StringField.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
- <url-pattern>写成/和/*的区别- CSDN博客
<url-pattern>/</url-pattern>: 会匹配到/springmvc这样的路径型url,不会匹配到模式为*.jsp这样的后缀型url. <url-pa ...
- 米尔科技MPSoC开发板评测
米尔科技推出的MYD-CZU3EG开发板搭载的就是UltraScale+ MPSoC平台器件 — XCZU3EG,它集成了四核Cortex-A53 处理器,双核 Cortex-R5 实时处理单元以及M ...
- 86.使用webpack爬过的坑
Webpack 4 和单页应用入门 https://github.com/wallstreetcn/webpack-and-spa-guide
- [转]C++类成员修饰const和mutable
const:常量,不变的 mutable:易变的 从意思上理解,可见const和mutable是一对反义词,它们都是C++的关键字. const成员函数不能修改调用它的对象.类的成员函数可以被声明为c ...
- open abc.txt: The system cannot find the file specified
使用io/ioutil包读取文件时报错:open abc.txt: The system cannot find the file specified 原因是:ioutil.ReadFile()这个方 ...
- Mac 设置redis开机启动
1.创建一个plist文件 首先我们需要在/Library/LaunchDaemons目录下创建一个plist文件,使用如下命令: 复制代码代码如下: sudo vim /Library/Launch ...
- prometheus学习系列九: Prometheus AlertManager使用
在Prometheus的报警系统中,是分为2个部分的, 规则是配置是在prometheus中的, prometheus组件完成报警推送给alertmanager的, alertmanager然后管理这 ...
- tensorflow批量读取数据
Tensorflow 数据读取有三种方式: Preloaded data: 预加载数据,在TensorFlow图中定义常量或变量来保存所有数据(仅适用于数据量比较小的情况). Feeding: Pyt ...
- yum localinstall 解决本地 rpm 包的依赖问题
yum localinstall 解决本地 rpm 包的依赖问题 本文原始地址:https://sitoi.cn/posts/13384.html 使用命令: sudo rpm -ivh xxx.rp ...