Matplotlib&Seaborn


Matplotlib

https://matplotlib.org/api/

这里写图片描述
这里写图片描述

绘图格式

import matplotlib.pyplot as plt
%matplotlib inline

# 定义图像和大小
fig = plt.figure(figsize=(9, 6))
# 添加子图
ax = fig.add_subplot(1,1,1)
# 标题
ax.set_title('title')
# 图例
ax.legend(loc="best")
# 图例背景颜色
legend.get_frame().set_facecolor('#FFFFFF')
# 标签
ax.text(2005, 87, 'Men')

plt.show()
plt.savefig('path')

坐标轴设置

# 坐标轴标题
ax.set_ylabel('Rating Source')
ax.set_xlabel('Average Rating')

# 坐标范围
ax.set_xlim(-0.015, 1.515)
ax.set_ylim(-0.01, 1.01)

# 坐标位置和刻度值
ax.set_xticks([0, 0.3, 0.4, 1.0, 1.5])
ax.set_xticklabels([0.0, "", "", 1.0, 1.5])

# 刻度线样式
ax.tick_params(axis='both',which='major',labelsize=14)
# 不显示刻度线
for key,spine in ax.spines.items():
    spine.set_visible(False)

# 设置双坐标轴,右侧Y轴
ax2=ax1.twinx()

# 设置Y轴显示百分数
fmt='%.2f%%'
yticks = mtick.FormatStrFormatter(fmt)

# 时间刻度显示格式
import matplotlib.dates as mdates
ax.xaxis.set_major_formatter(mdate.DateFormatter('%Y-%m-%d %H:%M%S'))
# 时间间隔
plt.xticks(pd.date_range(data.index[0],data.index[-1],freq='3M'))
plt.xticks(rotation=90)

 or

from matplotlib.dates import DateFormatter, WeekdayLocator, DayLocator, MONDAY,YEARLY
#获取每月一日数据
monthdays = MonthLocator()
#获取每周一的日期数据
mondays = WeekdayLocator(MONDAY)
#获取每日数据
alldays = DayLocator()

xs = [datetime.strptime(d, '%m/%d/%Y').date() for d in dates]
ys = range(len(xs))
# 配置横坐标
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%m/%d/%Y'))
plt.gca().xaxis.set_major_locator(mdates.DayLocator())
plt.plot(xs, ys)

绘图类型

# 折线图
plt.plot(x, y)
# 柱状图
plt.bar(x, y)
# 散点图
plt.scatter(x, y)
# 直方图
plt.hist(x, n)

Seaborn

绘图格式

import seaborn as sns

# 5种主题风格:darkgrid,whitegrid,dark,white,ticks
sns.set_style("whitegrid")

#指定域设定风格
with sns.axes_style("darkgrid"):
    plt.subplot(211)
    sinplot()

# 图样式
sns.set_context("notebook", font_scale=1.5, rc={"lines.linewidth": 2.5})

#圆形画板平均分割8份
sns.palplot(sns.color_palette("hls", 8))
# 颜色的亮度和饱和
sns.hls_palette(8, l=.7, s=.9)
# 连续色板
sns.color_palette("Blues")



坐标轴设置

#轴离图的距离
sns.despine(offset=10)
#保留左轴
sns.despine(left=True)

绘图类型

# 直方图
sns.distplot(x, bins=20, kde=False)#分成20块

# 数据分布情况
# 单特征
x = np.random.gamma(6, size=200)
sns.distplot(x, kde=False, fit=stats.gamma)
# 两特征
sns.jointplot(x="x", y="y", data=df)

#分布区域密集度图
x, y = np.random.multivariate_normal(mean, cov, 1000).T
with sns.axes_style("white"):
    sns.jointplot(x=x, y=y, kind="hex", color="k")

# 特征分布
sns.pairplot(iris)

# 回归
sns.regplot(x="total_bill", y="tip", data=tips)
sns.lmplot(x="total_bill", y="tip", data=tips)
# 树形图
sns.swarmplot(x="total_bill", y="day", hue="time", data=tips)
# 盒图
sns.boxplot(x="day", y="total_bill", hue="time", data=tips)
# 小提琴图
sns.violinplot(x="total_bill", y="day", hue="time", data=tips)
# 条形图
sns.barplot(x="sex", y="survived", hue="class", data=titanic)
# 点图
sns.pointplot(x="sex", y="survived", hue="class", data=titanic)
# 箱型图
sns.boxplot(data=iris,orient="h")
# 热图
sns.heatmap(flights)

猜你喜欢

转载自blog.csdn.net/changyan_123/article/details/81591669