简单的matplotlib用法

要引入的库:

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from numpy.random import randn

一个画板多个图,默认最后在一个添加,也可署名(或者用坐标表示):

fig = plt.figure()
ax1 = fig.add_subplot(2,2,1)#表示在figure中建立2*2个坐标系,ax1位于第一个坐标中
ax2 = fig.add_subplot(2,2,2)
ax3 = fig.add_subplot(2,2,3)
ax1.hist(randn(100),bins=20,color='k',alpha=0.3)#在ax1上作图
ax2.scatter(np.arange(30),np.arange(30)+3*randn(30))#在ax2上作图
plt.plot(randn(50).cumsum(),"k--")
plt.show()

一个画板多个图

刻度、标签和标题:

fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.plot(randn(1000).cumsum())
ticks = ax.set_xticks([0, 250, 500, 750, 1000])
labels = ax.set_xticklabels(["one", "two", "three", "four", "five"], rotation=30, fontsize="small")
ax.set_title("my first matplotlib plot")
ax.set_xlabel('Stages')
plt.show()

刻度、标签和标题

图例:

fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.plot(randn(1000).cumsum(), label="one") # 创建label标签
ax.plot(randn(1000).cumsum(), label="two")
ax.plot(randn(1000).cumsum(), label="three")
ax.legend(loc="best") # loc是用来说明图例的放置位置
plt.show()

图例

在图表中添加图形:

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
rect = plt.Rectangle((0.2, 0.75), 0.4, 0.15, color='k', alpha=0.3)
cric = plt.Circle((0.7, 0.2), 0.15, color='b', alpha=0.3)
pgon = plt.Polygon([[0.15, 0.15], [0.35, 0.4], [0.2, 0.6]], color='g', alpha=0.5)
ax.add_patch(rect)
ax.add_patch(cric)
ax.add_patch(pgon)
plt.show()

图表中添加图形

Pandas作图:

s = pd.Series(np.random.randn(10).cumsum(), index=np.arange(0, 100, 10))
s.plot()
plt.show()
df =pd.DataFrame(np.random.randn(10, 4).cumsum(0), columns=['A', 'B', 'C', 'D'], index=np.arange(0, 100, 10))
df.plot()
plt.show()

Pandas作图

Pandas作图

柱状图(Seris):

fig, axes = plt.subplots(2, 1)
data = pd.Series(np.random.rand(16), index=list('abcdefghijklmnop'))
data.plot(kind='bar', ax=axes[0], color='k', alpha=0.7) # 竖直
data.plot(kind='barh', ax=axes[1], color='k', alpha=0.7) # 水平
plt.show()

柱状图(Series)

柱状图(DataFrame),每一行的值分为一组:

fig, axes = plt.subplots(2, 1)
df = pd.DataFrame(np.random.rand(6, 4), index=['one', 'two', 'three', 'four', 'five', 'six'],
                  columns=pd.Index(['A', 'B', 'C', 'D'], name='Genus'))
df.plot(kind='bar', ax=axes[0], stacked=False, alpha=0.5) # 不合在一起
df.plot(kind='barh', ax=axes[1], stacked=True, alpha=0.5) # 合在一起
plt.show()

柱状图(DataFrame)

直方图和密度图:

# numpy.random.normal(loc=0.0, scale=1.0, size=None),loc:均值;scale:标准差;size:输出的shape,默认为None
comp1 = np.random.normal(0, 1, size=200) # N(0, 1)
comp2 = np.random.normal(10, 2, size=200) # N(10, 4)
values = pd.Series(np.concatenate([comp1, comp2])) #concatenate函数相当于组合,axis=1表示水平组合,axis=0为垂直组合
values.hist(bins=100, alpha=0.3, color='k', normed=True) # normed=True 是进行拟合的关键
values.plot(kind='kde', style='k--') # kde 表示密度图
plt.show()

直方图和密度图

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值