图的组成部分(取自matplotlib.org):
import matplotlib.pyplot as plt
import numpy as np
# make data
X, Y = np.meshgrid(np.linspace(-3, 3, 256), np.linspace(-3, 3, 256))
Z = (1 - X/2 + X**5 + Y**3) * np.exp(-X**2 - Y**2)
levels = np.linspace(np.min(Z), np.max(Z), 7)
# plot
fig, ax = plt.subplots()
ax.contour(X, Y, Z, levels=levels)
plt.show()
import matplotlib.pyplot as plt
import numpy as np
# make data
X, Y = np.meshgrid(np.linspace(-3, 3, 256), np.linspace(-3, 3, 256))
Z = (1 - X/2 + X**5 + Y**3) * np.exp(-X**2 - Y**2)
levels = np.linspace(Z.min(), Z.max(), 7)
# plot
fig, ax = plt.subplots()
ax.contourf(X, Y, Z, levels=levels)
plt.show()
np.meshgrid(a,b):生成二维平面网格
如:
a = np.array([1,2,3]) b = np.array([7,8]) c = np.meshgrid(a,b) #输出:[array([[1, 2, 3],[1, 2, 3]]), array([[7, 7, 7], [8, 8, 8]])]
np.linspace(start, stop, num=x) #输出x个范围在start--stop内的数值
np.exp(x) : 求x的幂次方
np.sqrt(x) : 求x的开方(算数平方根)
plt.subplot():
指定子图的位置 创建一个图形和一组子图
fig,ax = plt.subplots(2,3,1)
:2、3、1分别代表子图的行数、列数和第一个子图函数返回一个figure图像和子图ax的array列表
plt.contour( ):绘制轮廓图
plt.contourf( ):绘制填充区域颜色的图表
plt.imshow( ):展示图像
pandas.plotting.parallel_coordinates( frame , class_column , cols = None , ax = None , color = None , use_columns = False , xticks = None , colormap = None , axvlines = True , axvlines_kwds = None , sort_labels = False , ** kwargs )
frame : DataFrame类型数据
class_column :str类型,指定哪一列包含类的名字
cols :要使用的列名列表
ax :Matplotlib 轴对象
color :list or tuple,用于不同类别的颜色
use_columns:bool,如果为真,列将用作 xticks
xticks:用于 xticks 的值列表
colormap :用于线条颜色的颜色图
sort_labels : bool, 排序 class_column 标签,在分配颜色时很有用
**kwargs :传递给 matplotlib 绘图方法的选项
举例代码:
import matplotlib.pyplot as plt
import numpy as np
# 中文和负号的正常显示
plt.rcParams['font.sans-serif'] = 'Microsoft YaHei'
plt.rcParams['axes.unicode_minus'] = False
#使用ggplot的绘图风格
plt.style.use('ggplot')
#构建角度和值
# 标签
labels = np.array(['aa','bb','cc','dd','ee','ff',"aa"])
# 数据
data = np.array([1,4,3,6,4,8])
# 数据长度
dataLenth = 6
# 分割圆周长
angles = np.linspace(0, 2*np.pi, dataLenth, endpoint=False)
# 数据闭合
data = np.concatenate((data, [data[0]]))
# 圆周长闭合
angles = np.concatenate((angles, [angles[0]]))
# data:半径
# lw=2:表示极坐标图案的宽度
# bo-:绘制的极坐标图形为蓝色圆点加蓝线
plt.polar(angles, data, 'bo-', lw=2,alpha=0.5) #做极坐标系
# 做标签
plt.thetagrids(angles * 180/np.pi, labels)
# #设置填充颜色,并且透明度为0.25
plt.fill(angles, data, facecolor='b', alpha=0.25)
#设置极轴的范围
plt.ylim(0,10)
#添加标题
plt.title('标题')
#显示网格线
plt.grid(True)
plt.show()
from pandas.plotting import scatter_matrix
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df = pd.DataFrame(np.random.randn(1000, 4), columns=['a', 'b', 'c', 'd'])
scatter_matrix(df, alpha=0.2, figsize=(6, 6), diagonal='kde')
plt.show()
条形图:df.plot.bar( ) 或 df.plot.barth( )
密度图:df.plot.kde( ) 或 df.plot.density( )
直方图:df.plot.hist( )
箱线图:df.plot.box( )
饼图:df.plot.pie( )
面积图:df.plot.area( )
散点图:df.plot.scatter( )
六边形 bin 图:df.plot.hexbin( )