python绘图操作大全
一些基本设置
import matplotlib.pyplot as plt
import seaborn as sns
sns.set(style='whitegrid')
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.figure(1)
plt.plot()
plt.figure(2)
plt.plot()
plt.subplot(1, 3, 2)
legend
plt.legend()
- loc 位置参数,0: ‘best’ 1: ‘upper right’ 2: ‘upper left’ 3: ‘lower left’ 4: ‘lower right’ 5: ‘right’ 6: ‘center left’ 7: ‘center right’ 8: ‘lower center’ 9: ‘upper center’ 10: ‘center’
双柱状图+折线图
fig = plt.figure()
plt.title('2013-2020年城乡居民人均可支配收入(元)')
ax1 = fig.add_subplot(111)
width = 0.4
ax1.bar(urban[:, 0]-width/2, urban[:, 1], width, label='城镇居民人均可支配收入(元)')
ax1.bar(urban[:, 0]+width/2, rural[:, 1], width, label='农村居民人均可支配收入(元)')
for a, b in zip(urban[:, 0]-width/2, urban[:, 1]):
plt.text(a, b, b, ha='center', va='bottom')
for a, b in zip(urban[:, 0]+width/2, rural[:, 1]):
plt.text(a, b, b, ha='center', va='bottom')
ax1.set_xlabel('年份')
ax1.set_ylabel('人均可支配收入(元)')
ax2 = ax1.twinx()
ax2.plot(residents[1:, 0]-width/2, urban_real_rate, 'r', marker='*', label='城镇实际增长(%)')
ax2.plot(residents[1:, 0]+width/2, rural_real_rate, 'g', marker='*', label='农村实际增长(%)')
ax2.set_ylim(-10, 20)
ax2.set_ylabel('实际增长(%)')
ax2.grid(False)
for a, b in zip(residents[1:, 0]-width/2, urban_real_rate):
plt.text(a, b+0.4, b, ha='center', va='bottom')
for a, b in zip(residents[1:, 0]+width/2, rural_real_rate):
plt.text(a, b+0.4, b, ha='center', va='bottom')
fig.legend(loc=2, bbox_to_anchor=(0, 1), bbox_transform=ax1.transAxes)
plt.show()
添加标签 plt.text()
对于plt.text(x, y, s, fontsize, verticalalignment,horizontalalignment,rotation , **kwargs):
- x,y 标签添加的位置坐标,transform=ax.transAxes可以变换坐标系。
- s 标签内容
- fontsize 标签字体大小
- verticalalignment 垂直对齐方式 ,可选 ‘center’ ,‘top’ , ‘bottom’,‘baseline’
- horizontalalignment 水平对齐方式 ,可选 ‘center’ , ‘right’ ,‘left’
- rotation 标签旋转角度,逆时针计算
饼图
plt.pie(val, labels=label_income, labeldistance=1.1, autopct='%1.1f%%', startangle=90)
plt.axis('equal')
地图
c = (
Map(init_opts=opts.InitOpts(theme=ThemeType.PURPLE_PASSION))
.add("2020年", data_pair=residents_2020[["地区", "居民人均可支配收入(元)"]].values.tolist(), maptype="china")
.add("2019年", data_pair=residents_2019[["地区", "居民人均可支配收入(元)"]].values.tolist(), maptype="china")
.set_global_opts(
title_opts=opts.TitleOpts(title="各省份居民人均可支配收入情况"),
visualmap_opts=opts.VisualMapOpts(max_=80000, range_color=['#0087B6', '#F9CB69', '#FF5855'])
)
)
c.render('各省份居民人均可支配收入情况.html')
热力图
sns.heatmap(sd1, square=True, xticklabels=1, yticklabels=1)
plt.title('各地区收支情况——欧式距离')
plt.show()
|