[python]matplotlib操作(持续更新中)

Ctrl+f搜关键词,搜不到找其他博客,下面肯定没有

plt.xlim(-1,10)  #x范围
plt.ylim(0,10)  #y范围

from matplotlib import font_manager  #设置字体要导包
x = np.linspace(0,2 * np.pi,100)
y = np.sin(x)
plt.figure(figsize=(19,6))  #坐标轴的长和宽
#ls表示线的样子,marker表示点的样子
plt.plot(x,y,color = '#FF00EE',
         ls = '--',
         lw = 2,
         alpha = 0.6,
         marker = 'o',
         markerfacecolor = 'red',# 点颜色
         markersize = 10,# 点大小
         markeredgecolor = 'green',#点边缘颜色
         markeredgewidth = 3)
# 设置字体
plt.rcParams['font.family'] = 'KaiTi'
plt.rcParams['font.size'] = 28

ax = plt.gca() #获取当前视图

# 创建子视图
# 2行,1列,1第一个图
ax = plt.subplot(2,1,1)
ax.plot(x,np.sin(x))
#或
fig,axes = plt.subplots(2,2) # 四个图
# 索引,0开始
axes[0,0].plot(x,np.sin(x),color = 'red')

#结果在下面
# 嵌套方式一,axes轴域(横纵坐标范围),子视图
# x,y,width,height
ax = plt.axes([0.2,0.55,0.3,0.3]) # 参数含义[left, bottom, width, height]
ax.plot(x,y,color = 'g')
# 嵌套方式二
# 具体对象,添加子视图
ax = fig.add_axes([0.55,0.2,0.3,0.3]) # 使用视图对象添加子视图
ax.plot(x,y,color = 'r')

#多图布局
fig, ((ax11,ax12,ax13), (ax21,ax22,ax23),(ax31,ax32,ax33)) = plt.subplots(3, 3)
# 也可通过plt.subplot() 一个个添加子视图
fig.set_figwidth(9)
fig.set_figheight(6)
ax11.plot(x,np.sin(x))
。。。。。。
plt.tight_layout()
plt.show()

#双轴显示
ax2 = ax.twinx() # 双胞胎,两个X轴,合道一起的,两个X轴,对应着两个Y轴

ax.set_facecolor('green')
#两种效果相同,是右边和上面的脊柱消失
ax.spines['right'].set_alpha(0)
ax.spines['top'].set_color('#FFFFFF') # rgb白色
# 设置数字负号
plt.rcParams['axes.unicode_minus'] = False
#pad为字的最下方和坐标轴的最上方的距离
plt.title('正弦波',fontsize = 18,color = 'red',pad = 20)  
#或
# 字体属性
font = {'fontsize': 20,
        'family': 'STKaiti',
        'color':  'red',
        'weight': 'bold'} # 字体加粗
# 视图的标题,小标题
plt.title('指数级衰减',fontdict=font,pad = 20)
# figure的大标题,大标题
plt.suptitle('指数衰减',y = 1.05,fontdict = font,fontsize = 30)

plt.xlabel('X')  #设置x轴标签为X
#设置y轴标签,rotaion默认为90,即标签水平放置并逆时针旋转90°,horizontalalignment表示y轴位置
plt.ylabel('f(x) = sin(x)',rotation = 0,horizontalalignment = 'right')  
y_ = plt.yticks([-1,0,1]) #设置y轴间隔
# 设置x轴间隔为0,2/π,π,3π/2,2π
x_ = plt.xticks([0,np.pi/2,np.pi,1.5*np.pi,2*np.pi],
               [0,r'$\frac{\pi}{2}$',r'$\pi$',r'$\frac{3\pi}{2}$',r'$2\pi$'],color = 'red')# 字符串前面+r表示转义
#绘制坐标轴网格,alpha是透明度,越小越淡
plt.grid(color = 'green',alpha = 0.5,linestyle = '--',linewidth = 1)
# 图例
plt.legend(['Sin','Cos','Sin + Cos'],fontsize = 18,
           loc = 'center',
           ncol = 3,  #一行放三个
           bbox_to_anchor = (0,1,1,0.2)) # x,y,widht,height

plt.savefig('./2.pdf',dpi = 300)

# 1、线形图
df1 = pd.DataFrame(data = np.random.randn(1000,4),
                  index = pd.date_range(start = '27/6/2021',periods=1000),
                  columns=list('ABCD'))
df1.cumsum().plot()
# 2、条形图
df2 = pd.DataFrame(data = np.random.rand(10,4),
                   columns = list('ABCD'))
df2.plot.bar(stacked = True) # stacked 是否堆叠
df2
# 3、饼图,百分比,自动计算
df3 = pd.DataFrame(data = np.random.rand(4,2),
                   index = list('ABCD'),
                   columns=['One','Two'])
# subplots两个图,多个图
# figsize 尺寸
df3.plot.pie(subplots = True,figsize = (8,8),colors = np.random.random(size = (4,3)))
# 4、散点图,横纵坐标,表示:两个属性之间的关系
df4 = pd.DataFrame(np.random.randint(0,50, size = (50,4)), columns=list('ABCD'))
df4.plot.scatter(x='A', y='B') # A和B关系绘制
# # 在一张图中绘制AC散点图,同时绘制BD散点图
ax = df4.plot.scatter(x='A', y='C', color='DarkBlue', label='Group 1');
df4.plot.scatter(x='B', y='D', color='DarkGreen', label='Group 2', ax=ax)
# # 气泡图,散点有大小之分
df4.plot.scatter(x='A',y='B',s = df4['C']*200)
# 5、面积图
df5 = pd.DataFrame(data = np.random.rand(10, 4), 
                   columns=list('ABCD'))
df5.plot.area(stacked = True,color = np.random.rand(4,3));# stacked 是否堆叠

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值