Matplotlib绘制图形
基本参数
设置标题 plt.title()
设置坐标轴标签 ply.xlabel() plt.ylabel()
设置坐标轴范围 plt.xlim() plt.ylim()
设置图例 plt.legend()
设置图像大小 plt.figure()
折线图
plot()
参数:
x x轴上的数值
y y轴上的数值
ls 线条风格
lw 线条宽度
c 颜色
label 标签文本
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df=pd.DataFrame(np.random.randn(5,4),columns=['a','b','c','d'])
x=df.index
y=df['a']
plt.plot(x,y,ls='-',lw=2,c='r',label='a')
plt.legend()
plt.show()
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['FangSong'] # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False
df=pd.DataFrame(np.random.randn(5,4),columns=['a','b','c','d'])
x=df.index
y=df['a']
plt.plot(x,y,ls='-',lw=2,c='r')
y=df['b']
plt.plot(x,y,ls='-',lw=2,c='b')
y=df['c']
plt.plot(x,y,ls='-',lw=2,c='y')
y=df['d']
plt.plot(x,y,ls='-',lw=2,c='g')
plt.title('折线图')
# 设置图例
plt.legend(df.columns)
plt.show()
柱状图
bar()
基本参数
x x轴上的数值
y y轴上的数值
color 颜色
label 标签文本
plt.rcParams['font.sans-serif'] = ['FangSong'] # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False
df=pd.DataFrame(np.random.rand(5,4),columns=['a','b','c','d'])
x=df.index
y=df['a']
plt.ylabel('x')
plt.xlabel('y')
plt.title('柱状图')
plt.bar(x,y,color='b')
plt.show()
条形图(横柱状图)
barh()
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['FangSong'] # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False
df=pd.DataFrame(np.random.rand(5,4),columns=['a','b','c','d'])
x=df.index
y=df['a']
plt.ylabel('x')
plt.xlabel('y')
plt.title('柱状图')
plt.barh(x,y,color='b')
plt.show()
散点图
scatter()
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['FangSong'] # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False
df=pd.DataFrame(np.random.rand(100,4),columns=['a','b','c','d'])
x=df.index
y=df['a']
plt.ylabel('x')
plt.xlabel('y')
plt.title('散点图')
plt.scatter(x,y,color='b')
plt.show()
s 设置标记的大小
marker 设置标记的形状
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['FangSong'] # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False
df=pd.DataFrame(np.random.rand(100,4),columns=['a','b','c','d'])
x=df.index
y=df['a']
plt.ylabel('x')
plt.xlabel('y')
plt.title('散点图')
plt.scatter(x,y,s=5,color='b',marker=6)
plt.show()
marker 参数
============================== ====== =========================================
marker symbol description
============================== ====== =========================================
``"."`` |m00| point
``","`` |m01| pixel
``"o"`` |m02| circle
``"v"`` |m03| triangle_down
``"^"`` |m04| triangle_up
``"<"`` |m05| triangle_left
``">"`` |m06| triangle_right
``"1"`` |m07| tri_down
``"2"`` |m08| tri_up
``"3"`` |m09| tri_left
``"4"`` |m10| tri_right
``"8"`` |m11| octagon
``"s"`` |m12| square
``"p"`` |m13| pentagon
``"P"`` |m23| plus (filled)
``"*"`` |m14| star
``"h"`` |m15| hexagon1
``"H"`` |m16| hexagon2
``"+"`` |m17| plus
``"x"`` |m18| x
``"X"`` |m24| x (filled)
``"D"`` |m19| diamond
``"d"`` |m20| thin_diamond
``"|"`` |m21| vline
``"_"`` |m22| hline
``0`` (``TICKLEFT``) |m25| tickleft
``1`` (``TICKRIGHT``) |m26| tickright
``2`` (``TICKUP``) |m27| tickup
``3`` (``TICKDOWN``) |m28| tickdown
``4`` (``CARETLEFT``) |m29| caretleft
``5`` (``CARETRIGHT``) |m30| caretright
``6`` (``CARETUP``) |m31| caretup
``7`` (``CARETDOWN``) |m32| caretdown
``8`` (``CARETLEFTBASE``) |m33| caretleft (centered at base)
``9`` (``CARETRIGHTBASE``) |m34| caretright (centered at base)
``10`` (``CARETUPBASE``) |m35| caretup (centered at base)
``11`` (``CARETDOWNBASE``) |m36| caretdown (centered at base)
多图
subplot(1,2,1)
第一个参数表示 几行分布
第二个参数表示 一行记个图
第三个参数表示 图显示的位置
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['FangSong'] # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False
df=pd.DataFrame(np.random.rand(100,4),columns=['a','b','c','d'])
x=df.index
y=df['a']
plt.subplot(2,3,1)
plt.scatter(x,y,color='b')
plt.subplot(2,3,2)
y=df['b']
plt.scatter(x,y,s=5,color='b',marker=6)
plt.subplot(2,3,6)
y=df['b']
plt.scatter(x,y,s=5,color='b',marker=6)
plt.show()
subplots_adjust设置图像高宽
subplots 减少区域分块后 设置子图的title 和xy轴
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['FangSong'] # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False
df=pd.DataFrame(np.random.rand(100,4),columns=['a','b','c','d'])
x=df.index
y=df['a']
fig,ax=plt.subplots(2,3)
ax1=ax[0][0]
ax1.set_title('1')
ax1.set_ylabel('y')
ax1.set_xlabel('x')
ax1.scatter(x,y,color='b')
ax2=ax[0][2]
ax2.set_title('2')
ax2.scatter(x,y,color='r')
ax3=ax[1][1]
ax3.set_title('3')
ax3.scatter(x,y,color='g')
plt.subplots_adjust(wspace=2,hspace=2)
plt.show()