b: blue
g: green
r:red
c:cyan 蓝绿色
m:magenta 洋红色
y:yellow
k:black
w:white
‘.’ 点
‘,’ 像素
‘o’ 圆形
‘v’ 下三角
‘x’ x型
‘D’ 实心菱型
‘d’ 细菱形
‘s’ 正方形
‘p’ 五边形
‘*’ 星型
‘1’ 三叉点朝下(丫)
‘2’ 三叉点朝上
‘3’ 三叉点朝左
‘4’ 三叉点朝右
‘h’ 六边形
‘H’ 旋转六边形
‘+’ 加号
‘|’ 垂直线
‘_’ 水平线
实线 '-’
虚线 '–’
点划线 '-.’
点线 ‘:’
将颜色、形状、线型写成一个字符串
"bo-"表示蓝色,圆形数据点的实线
plt.plot(x,y,"bo-")
这里只贴出了关键部分代码,省略一些如导包的步骤。
scatter(x, y, [s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None,
alpha=None, linewidths=None, verts=None, edgecolors=None, hold=None, data=None, **kwargs])
s-面积、c-颜色、marker-标记形状、alpha-透明度
plt.scatter(day,cola,s=80,c="b",marker="o")
plt.scatter(day,milktea,s=80,c="r",marker="o")
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
plt.plot(x,y,format_string,**kwargs)
format_string 是用于显示格式的字符串,如上述的“bo-”
kwargs表示第二条曲线的x,y,format_string,我们可以把多条曲线画在一个函数里面。
第一步导包及显示中文、负号:
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
第二步(x,y)画图:
date=np.arange(0,12)
PA=[129,132,115,120,126,131,126,110,99,105,126,130]
PB=[134,164,139,180,167,153,156,162,149,138,140,122]
PC=[82,76,92,91,90,81,79,86,75,79,84,89]
plt.plot(date,PA,"bo-",PB,"ro-",PC,"go-")
plt.show()
但是这样出来并不美观,也不知道分析的是什么东西,做一些添加:
plt.xticks(date,["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"])
plt.yticks(range(0,220,20))#调整X,Y轴参数
pro_type=["产品A","产品B","产品C"]
plt.xlabel("月份")#X 轴标签
plt.ylabel("销量")#Y 轴标签
plt.title("产品销量")#主题
plt.legend(pro_type)#显示图例
plt.bar(*args, **kwargs)
(x, height, width, bottom, *, align='center', **kwargs)
season = np.arange(0,4)
cost=[5000,5600,7000,6500]
plt.bar(x=season,height=cost,width=0.5,color="r")
x : 标量序列,x坐标
height : 标量或标量序列,bar的高度
width : 标量或标量类数组,可选,bar的宽度,默认0.8,
bottom : 标量或标量类数组,可选,y坐标的起始高度,默认0
align : {‘center’, ‘edge’}, 可选,对齐方式,默认: ‘center’
color : 标量或标量类数组,可选,设置bar的颜色
edgecolor : 标量或标量类数组,可选, 设置bar边的颜色
linewidth : 标量或标量类数组,可选,设置bar边的大小
orientation : {‘vertical’, ‘horizontal’}, 水平或垂直
1.在bar()函数中添加参数orientation= “horizontal”,并对其他参数进行修改
2.使用barh(bottom, width, height=0.8, left=None, hold=None, **kwargs )函数
plt.barh(year,value,height=0.5,color='r')
pie(x,explode=None,labels=None,colors=None, autopct=None, pctdistance=0.6,
shadow=False, labeldistance=1.1, startangle=None,
radius=None, counterclock=True, wedgeprops=None,
textprops=None, center=(0, 0), frame=False, rotatelabels=False, *, data=None)
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
products = ["冰箱","电视","空调","风扇","洗衣机"]
percent = [0.3,0.2,0.1,0.15,0.25]
edge = [0,0,0.1,0.1,0]#控制分离的程度,离圆心的距离
plt.axes(aspect="equal")#等于1也行,这样画出来是个圆,而不是椭圆
plt.pie(percent,explode=edge,labels=products,autopct="%1.1f%%")
plt.show()
x:为一个存放各部分占比的向量
labels:list, 设置各类的说明文字,元素一一对应
explode:list, 每一部分离开中心点的距离 ,元素数目与x相同且一一对应
colors:list, 设置为各部分染色列表,元素一一对应
shadow :在饼图下面画一个阴影。默认值:False
autopct :控制饼图内百分比设置,使用format字符串 ‘%1.1f%%’指小数点前后位数及%号
hist(x,bins=None,range=None, density=None, bottom=None, histtype='bar',
align='mid', log=False, color=None, label=None, stacked=False, normed=None)
x:指定要绘制直方图的数据。
bins:指定直方图条形的个数。
range:指定直方图数据的上下界,默认包含绘图数据的最大值和最小值。
normed:是否将直方图的频数转换成频率。
weights:该参数可为每一个数据点设置权重。
cumulative:是否需要计算累计频数或频率。
bottom:可以为直方图的每个条形添加基准线,默认为0。
histtype:指定直方图的类型,默认为bar,除此之外,还有barstacked、step和stepfilled
align:设置条形边界值的对齐方式,默认为mid,另外还有left和right
orientation:设置直方图的摆放方向,默认为垂直方向
rwidth:设置直方图条形的宽度
log:是否需要对绘图数据进行log变换
color:设置直方图的填充色
edgecolor:设置直方图边框色
label:设置直方图的标签,可通过legend展示其图例
stacked:当有多个数据时,是否需要将直方图呈堆叠摆放,默认水平摆放
# 读入数据
Titanic = pd.read_csv('titanic_train.csv')
# 绘制直方图
Titanic.Age.plot(kind = 'hist', bins = 20, color = 'steelblue', edgecolor = 'black', normed = True, label = '直方图')
# 绘制核密度图
Titanic.Age.plot(kind = 'kde', color = 'red', label = '核密度图')
# 添加x轴和y轴标签
plt.xlabel('年龄')
plt.ylabel('核密度值')
# 添加标题
plt.title('乘客年龄分布')
# 显示图例
plt.legend()
# 显示图形
plt.show()
x:数值类型的数据
bins:条形数,int
color:颜色
density:频数统计结果,True表示出现的频率,False表示出现的次数
这里我们用data接收读出的Excel数据,直接选择我们要的列名画图,默认是折线
data = pd.read_excel()
data["可乐"].plot()
可以传入hist和bar等参数:
data["可乐"].plot(kind="bar",color="r")
这是选择其中一列,如果全部都画那直接用data就即可。
堆叠:stackde=True
data.plot(kind=“bar”,sracked=True)
官方网站:https://matplotlib.org/users/index.html
官方教程:https://matplotlib.org/tutorials/index.html
官方案例:https://matplotlib.org/gallery/index.html