matplotlib+seaborn+pyecharts绘图总结

matplotlib绘图

绘图模板代码:

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = [u'SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.grid(True)
plt.autoscale(tight=True)
from matplotlib import pylab #用matlab方法绘图
plt.plot(x,y)
plt.title('time series',fontsize=20)
plt.xlabel(u'time point',fontsize=14)
plt.ylabel(u' value',fontsize=14)
plt.legend(loc='best')
plt.savefig("name.jpg")
plt.show()

在线颜色选择器

https://www.atool99.com/colorpicker.php

plt.rcParams属性

plt(matplotlib.pyplot)使用rc配置文件来自定义图形的各种默认属性。

序号 属性 说明
1 plt.rcParams[’axes.unicode_minus’] = False 字符显示
2 plt.rcParams[’font.sans-serif’] = ‘SimHei’ 设置字体
线条样式:lines
3 plt.rcParams[’lines.linestyle’] = ‘-.’ 线条样式
4 plt.rcParams[’lines.linewidth’] = 3 线条宽度
5 plt.rcParams[’lines.color’] = ‘blue’ 线条颜色
6 plt.rcParams[’lines.marker’] = None 默认标记
7 plt.rcParams[’lines.markersize’] = 6 标记大小
8 plt.rcParams[’lines.markeredgewidth’] = 0.5 标记符号外缘的线宽
横、纵轴:xtick、ytick
9 plt.rcParams[’xtick.labelsize’] 横轴字体大小
10 plt.rcParams[’ytick.labelsize’] 纵轴字体大小
11 plt.rcParams[’xtick.major.size’] x轴最大刻度
12 plt.rcParams[’ytick.major.size’] y轴最大刻度
figure中的子图:axes
13 plt.rcParams[’axes.titlesize’] 子图的标题大小
14 plt.rcParams[’axes.labelsize’] 子图的标签大小
图像、图片:figure、savefig
15 plt.rcParams[’figure.dpi’] 图像分辨率
16 plt.rcParams[’figure.figsize’] 图像显示大小
17 plt.rcParams[’savefig.dpi’] 图片像素

参考文章

配色参数

  • matplotlib所有颜色组合表格整理版
    https://blog.csdn.net/qq_41595507/article/details/107146256
  • seaborn 调色板详细用法
    https://www.cntofu.com/book/172/docs/9.md
  • 色卡对应参数值
    https://www.cnblogs.com/zwt20120701/p/10872023.html
  • https://www.cnblogs.com/qianblue/p/10783261.html
  • 设置背景颜色set_facecolor
    ax.set_facecolor(‘lightgrey’)
  • cmap
cmapname = 'seismic'
cmap = matplotlib.cm.get_cmap(cmapname)
 # 设置使用的配色方案

https://matplotlib.org/tutorials/colors/colormaps.html
https://matplotlib.org/examples/color/colormaps_reference.html

cmap映射

colormap参考

图像大小和分辨率

fig = plt.figure(figsize=(width, height), dpi=dpi)

figsize 设置图形的大小,单位为英寸,dpi 为设置图形每英寸的点数。

线型参数

plt.title('time',fontsize=20)
plt.xlabel(u'hour',fontsize=14)
plt.ylabel(u'value',fontsize=14)
plt.plot(x,y,color='lightgrey',linewidth=1,linestyle='-',label='a',marker='x')
plt.plot(x,y,color='black',linewidth=1,linestyle='-',label='b',marker='.')
plt.legend(loc='best')
plt.show()

https://blog.csdn.net/dss_dssssd/article/details/84430024

标注

+plt.vlines(x,y_min,y_max)画垂直线
+plt.hlines(y,x_min,x_max)画水平线

plt.vlines(1.6, 0, 8, colors = “c”,linewidth=4,linestyles = “dashed”)。
plt.vlines(x=120,ymin=[0],ymax=max(n[‘合计’].values),linestyles=‘dashed’,color=‘r’)
plt.axhline(y=-1.96/np.sqrt(len(ts_log_diff)),linestyle=’–’,color=‘gray’)
plt.axhline(y=1.96/np.sqrt(len(ts_log_diff)),linestyle=’–’,color=‘gray’)

annotate标注箭头

坐标轴参数

  • 刻度位置、大小、颜色设置 ax.tick_params
ax.tick_params(direction='out', length=6, width=2, colors='r',
               grid_color='r', grid_alpha=0.5)
  • 设置坐标轴的实例 ax.xaxis.set_major_locator(x_major_locator)
  • 设置刻度间隔
x_major_locator=MultipleLocator(1)
#把x轴的刻度间隔设置为1,并存在变量里
y_major_locator=MultipleLocator(10)
#把y轴的刻度间隔设置为10,并存在变量里
ax=plt.gca() 
#ax为两条坐标轴的实例
ax.xaxis.set_major_locator(x_major_locator)
#把x轴的主刻度设置为1的倍数
ax.yaxis.set_major_locator(y_major_locator)
#把y轴的主刻度设置为10的倍数
plt.xlim(-0.5,11)
#把x轴的刻度范围设置为-0.5到11,因为0.5不满一个刻度间隔,所以数字不会显示出来,但是能看到一点空白
plt.ylim(-5,110)
  • 刻度显示范围调整

  • plt.autoscale(tight=True)自动调整图像显示的最佳比例。
    plt.autoscale(axis=‘x’, tight=True)

  • plt.xticks(loc,label)设置x轴刻度,loc是数值显示的位置,label是显示的数值。

plt.xticks([w*7*24 for w in range(10)],['week %i' %w for w in range(10)])
  • plt.yticks([])表示坐标轴y刻度不显示。
  • plt.grid(True)绘图显示网格。
  • ax.spines坐标轴位置设置

隐藏某些坐标轴:

ax.spines[‘right’].set_color(‘none’)
ax.spines[‘top’].set_color(‘none’)

移动坐标轴的默认位置:

ax.spines[‘bottom’].set_position((‘data’, 0))
ax.spines[‘left’].set_position((‘data’,0))

自动旋转日期坐标轴:

plt.gcf().autofmt_xdate() #x轴日期刻度旋转避免重叠

  • ax.twinx()方法绘制双Y轴折线图
  • x轴日期显示格式设置
#设置日期的显示格式  
date_format = mpl.dates.DateFormatter("%Y-%m-%d")  
ax.xaxis.set_major_formatter(date_format)

# 设置x轴每个刻度的间隔天数
xlocator = mpl.ticker.MultipleLocator(5)
ax.xaxis.set_major_locator(xlocator)
# 为了避免x轴日期刻度标签的重叠,设置x轴刻度自动展现,并且45度倾斜
fig.autofmt_xdate(rotation = 45) 

图例

legend参数:https://matplotlib.org/devdocs/api/_as_gen/matplotlib.pyplot.legend.html
参考:https://blog.csdn.net/chichoxian/article/details/101058046
图例在图形中位置调整:https://mp.weixin.qq.com/s?src=11&timestamp=1618911024&ver=3020&signature=YvEH2UoHq0YVZtM0CWrLxnXWwsGjV8ZafTeYAeyY1pvHsqEf-dYuJchM5C-4JWfoTdcujv3egP-Pb89jaBUqn9B9iKh2mzE7Cds3TIyor1O1kVrJep3qHjlCQak8e5&new=1

形状与路径

  • matplotlib.patches

绘图画布(面向对象式绘图)

Matplotlib 里的常用类的包含关系为 Figure -> Axes -> (Line2D, Text, etc.)一个Figure对象可以包含多个子图(Axes),在matplotlib中用Axes对象表示一个绘图区域,可以理解为子图。
可以使用subplot()快速绘制包含多个子图的图表,它的调用形式如下:
subplot(numRows, numCols, plotNum)
参考

  • plt.tight_layout()
    解决子图坐标轴和标题重叠
  • plt.sca()
    Set the current Axes instance to ax.如plt.sca(ax1)是选择子图ax1。
  • plt.gca()

get current axes 获取当前的绘图空间

绘制矩阵热力图

  1. matshow函数
import matplotlib.pylab as plt
import numpy as np
a=np.random.randint(1,100,size=(10,10))
plt.matshow(a)

日历热力图

Calendar Heat Map

import matplotlib as mpl
import calmap
#Import Data
df = pd.read_csv("https://raw.githubusercontent.com/selva86/datasets/master/yahoo.csv",
parse_dates=['date'])
df.set_index('date', inplace=True)

#Plot
plt.figure(figsize=(16,10), dpi= 80)
calmap.calendarplot(df['2014']['VIX.Close'], fig_kws={'figsize': (16,10)}, yearlabel_kws={'color':'black', 'fontsize':14}, subplot_kws={'title':'Yahoo Stock Prices'})
plt.show()

误差线

  • 柱状图误差线

yerr关键字参数:可传入包含标准差的列表
error_kw={} , 接收显示误差线的关键字函数
eColor:指定误差线的颜色
capsize :指定误差线两头横线的宽度
alpha:控制彩色条状图的透明度, 范围0-1

plt.bar(index, values, yerr = std, error_kw = {'ecolor' : '0.2', 'capsize' :6}, alpha=0.7) 
  • 曲线阴影线
    fill_between方法。
plt.plot(xdata, ydata, 'or')
plt.plot(xfit, yfit, '-', color='gray')
#颜色为灰色,设置透明度为0.2
plt.fill_between(xfit, yfit - dyfit, yfit+dyfit, color='gray', alpha=0.2)
#绘制上下两条线并形成阴影面积
  • 误差棒

matplotlib.pyplot.errorbar(x, y, yerr=None, xerr=None, fmt=’’, ecolor=None, elinewidth=None, capsize=None, barsabove=False, lolims=False, uplims=False, xlolims=False, xuplims=False, errorevery=1, capthick=None, *, data=None, **kwargs)

参考区

  • plt.axvspan(xmin=1.0, xmax=2.0, facecolor=“y”, alpha=0.3)
    绘制垂直于x轴的参考区域。
 plt.axvspan(data.index[-1], forecast.index[-1], alpha=0.5, color='lightgrey')

其他各类图形

https://blog.csdn.net/weixin_39851977/article/details/112325172

seaborn绘图

中文文档
https://www.cnblogs.com/dan-baishucaizi/p/9467064.html
change-font-size
两个很好的绘图博客教程:
http://queirozf.com/entries/matplotlib-examples-displaying-and-configuring-legends
https://www.machinelearningplus.com/plots/top-50-matplotlib-visualizations-the-master-plots-python/
绘图风格设置
https://baijiahao.baidu.com/s?id=1618246258758214553&wfr=spider&for=pc

  • matplotlib最有价值的五十个图表
    https://blog.csdn.net/Yuyh131/article/details/102523867
    #SCI期刊绘图
    SciencePlots绘图渲染包

导出高分辨率图片

plt.savefig("分布",dpi=750, bbox_inches = 'tight')

自定义绘图设置

https://www.cnblogs.com/lemonbit/p/7419851.html

  • 正射投影绘图
    https://www.csdn.net/gather_27/MtjaYgxsNDk0ODgtYmxvZwO0O0OO0O0O.html
    在这里插入图片描述

pyecharts绘图

中文文档 http://pyecharts.org/#/zh-cn/basic_charts

各类型图表绘图参考

https://zhuanlan.zhihu.com/p/220345912?utm_source=com.alpha.pinbox

ipyvolume三维绘图

https://pypi.org/project/ipyvolume/

python数据可视化技巧

https://zhuanlan.zhihu.com/p/313462427
这篇文章合集写的非常好。

uber vis 可视化库

https://medium.com/vis-gl

geopanda地圖匯總

https://my.oschina.net/jiangroubao/blog/4544740

pandas-alive

绘制各种动图的python库。
https://jackmckew.github.io/pandas_alive/
在这里插入图片描述

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值