Python基础专栏(四)Matplotlib中

网友投稿 639 2022-05-30

Python基础专栏四之Matplotlib(中)

图表的样式参数

导入相关模块

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

% matplotlib inline

linestyle参数

plt.plot([i**2 for i in range(100)],

linestyle = '-.')

# '-'       solid line style

# '--'      dashed line style

# '-.'      dash-dot line style

# ':'       dotted line style

marker参数

s = pd.Series(np.random.randn(100).cumsum())

s.plot(linestyle = '--',

marker = '.')

# '.'       point marker

# ','       pixel marker

# 'o'       circle marker

# 'v'       triangle_down marker

# '^'       triangle_up marker

# '<'       triangle_left marker

# '>'       triangle_right marker

# '1'       tri_down marker

# '2'       tri_up marker

# '3'       tri_left marker

# '4'       tri_right marker

# 's'       square marker

# 'p'       pentagon marker

# '*'       star marker

# 'h'       hexagon1 marker

# 'H'       hexagon2 marker

# '+'       plus marker

# 'x'       x marker

# 'D'       diamond marker

# 'd'       thin_diamond marker

# '|'       vline marker

# '_'       hline marker

color参数

plt.hist(np.random.randn(100),

color = 'g',alpha = 0.8)

# alpha:0-1,透明度

# 常用颜色简写:red-r, green-g, black-k, blue-b, yellow-y

df = pd.DataFrame(np.random.randn(1000, 4),columns=list('ABCD'))

df = df.cumsum()

df.plot(style = '--.',alpha = 0.8,colormap = 'GnBu')

# colormap:颜色板

style参数,可以包含linestyle,marker,color

ts = pd.Series(np.random.randn(1000).cumsum(), index=pd.date_range('1/1/2000', periods=1000))

ts.plot(style = '--g.',grid = True)

# style → 风格字符串,这里包括了linestyle(-),marker(.),color(g)

# plot()内也有grid参数

整体风格样式

import matplotlib.style as psl

print(plt.style.available)

# 查看样式列表

psl.use('ggplot')

ts = pd.Series(np.random.randn(1000).cumsum(), index=pd.date_range('1/1/2000', periods=1000))

ts.plot(style = '--g.',grid = True,figsize=(10,6))

# 一旦选用样式后,所有图表都会有样式,重启后才能关掉

子图

在matplotlib中,整个图像为一个Figure对象,在Figure对象中可以包含一个或者多个Axes对象。

每个Axes(ax)对象都是一个拥有自己坐标系统的绘图区域。

plt.figure, plt.subplot

导入相关模块

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

% matplotlib inline

子图创建1 - 先建立子图然后填充图表

fig = plt.figure(figsize=(10,6),facecolor = 'gray')

ax1 = fig.add_subplot(2,2,1)  # 第一行的左图

plt.plot(np.random.rand(50).cumsum(),'k--')

plt.plot(np.random.randn(50).cumsum(),'b--')

# 先创建图表figure,然后生成子图,(2,2,1)代表创建2*2的矩阵表格,然后选择第一个,顺序是从左到右从上到下

# 创建子图后绘制图表,会绘制到最后一个子图

ax2 = fig.add_subplot(2,2,2)  # 第一行的右图

ax2.hist(np.random.rand(50),alpha=0.5)

ax4 = fig.add_subplot(2,2,4)  # 第二行的右图

df2 = pd.DataFrame(np.random.rand(10, 4), columns=['a', 'b', 'c', 'd'])

ax4.plot(df2,alpha=0.5,linestyle='--',marker='.')

# 也可以直接在子图后用图表创建函数直接生成图表

子图创建2 - 创建一个新的figure,并返回一个subplot对象的numpy数组 → plt.subplot

fig,axes = plt.subplots(2,3,figsize=(10,4))

ts = pd.Series(np.random.randn(1000).cumsum())

print(axes, axes.shape, type(axes))

# 生成图表对象的数组

ax1 = axes[0,1]

Python基础专栏(四)Matplotlib中

ax1.plot(ts)

plt.subplots,参数调整

fig,axes = plt.subplots(2,2,sharex=True,sharey=True)

# sharex,sharey:是否共享x,y刻度

for i in range(2):

for j in range(2):

axes[i,j].hist(np.random.randn(500),color='k',alpha=0.5)

plt.subplots_adjust(wspace=0,hspace=0)

# wspace,hspace:用于控制宽度和高度的百分比,比如subplot之间的间距

Python

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:清华携手华为,“数字中国”首期班深圳启航
下一篇:数字中国创新大赛决赛名单出炉,与华为云 EI 一起挑战书法识别
相关文章