废话不多说,直接撸代码~
import numpy as np
import matplotlib.pyplot as plt
plt.subplot(1,1,1)
#建立一个坐标系
x = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
y = np.array([866, 2335, 5710, 6482, 6120, 1605, 3813, 4428, 4631])
plt.rcParams['font.sans-serif']=['KaiTi']
# 解决中文乱码问题
plt.rcParams['axes.unicode_minus']=False
# 解决负号无法显示的问题
plt.plot(x,y,color="k",linestyle="dashdot",
linewidth=1,marker="o",markersize=5,label="用户注册量")
# 指定颜色线型线宽和label
plt.title("python爱好者社区公众号1-9月注册用户量",loc="center")
for a,b in zip(x,y):
plt.text(a,b,b,ha='center',va="bottom",fontsize=10)
plt.grid(True)
plt.legend()
plt.savefig(r"C:\Users\xiaoLiu\Desktop\keshihua\1.jpg")
plt.show()
好啦,以上代码我都写了注释,接下来我们看看效果怎么样吧!
怎么样,还是很好看的吧,反正我感觉比excel好玩
import numpy as np
import matplotlib.pyplot as plt
plt.subplot(1,1,1)
fig=plt.figure()
plt.figure(figsize=(8,6))
plt.rcParams['font.sans-serif']=['KaiTi']
plt.rcParams['axes.unicode_minus']=False
x=np.array(["东区","北区","南区","西区"])
y=np.array([8566,6482,5335,7310])
plt.bar(x,y,width=0.5,align="center",label="任务量")
plt.title("全国各分区任务量占比",loc="center")
for a,b in zip(x,y):
plt.text(a,b,b,ha='center',va='center',fontsize=12)
plt.ylabel("区域")
plt.xlabel("任务量")
plt.legend()
plt.savefig(r"C:\Users\xiaoLiu\Desktop\keshihua\2.jpg")
plt.show()
import numpy as np
import matplotlib.pyplot as plt
plt.subplot(1, 1, 1)
fig = plt.figure()
plt.figure(figsize=(8, 6))
plt.rcParams['font.sans-serif'] = ['KaiTi']
plt.rcParams['axes.unicode_minus'] = False
x = np.array([1, 2, 3, 4])
y1 = np.array([8566, 5335, 7610, 6482])
y2 = np.array([4283, 2667, 3655, 3241])
plt.bar(x, y1, width=0.3, label="任务量")
plt.bar(x + 0.3, y2, width=0.3, label="完成量")
plt.title("全国各分区任务量和完成量", loc="center")
for a, b in zip(x, y1):
plt.text(a, b, b, ha='center', va='bottom', fontsize=12)
for a, b in zip(x + 0.3, y2):
plt.text(a, b, b, ha='center', va='bottom', fontsize=12)
plt.ylabel("区域")
plt.xlabel("任务量")
plt.xticks(x + 0.15, ["东区", "南区", "西区", "北区"])
plt.grid(False)
plt.legend()
plt.savefig(r"C:\Users\xiaoLiu\Desktop\keshihua\3.jpg")
plt.show()
import numpy as np
import matplotlib.pyplot as plt
plt.subplot(1, 1, 1)
fig = plt.figure()
plt.figure(figsize=(8, 6))
plt.rcParams['font.sans-serif'] = ['KaiTi']
plt.rcParams['axes.unicode_minus'] = False
x = np.array(["东区", "北区", "南区", "西区"])
y1 = np.array([8566, 5335, 7610, 6482])
y2 = np.array([4283, 2667, 3655, 3241])
plt.bar(x, y1, width=0.3, label="任务量")
plt.bar(x, y2, width=0.3, label="完成量")
plt.title("全国各分区任务量和完成量", loc="center")
for a, b in zip(x, y1):
plt.text(a, b, b, ha='center', va='bottom', fontsize=12)
for a, b in zip(x, y2):
plt.text(a, b, b, ha='center', va='top', fontsize=12)
plt.ylabel("区域")
plt.xlabel("任务量")
plt.grid(False)
plt.legend(loc="upper center", ncol=2)
plt.savefig(r"C:\Users\xiaoLiu\Desktop\keshihua\4.jpg")
plt.show()
条形图的绘制和柱形图类似,只不过由bar变为了barh
import numpy as np
import matplotlib.pyplot as plt
plt.subplot(1,1,1)
fig=plt.figure()
plt.figure(figsize=(8,6))
plt.rcParams['font.sans-serif']=['KaiTi']
plt.rcParams['axes.unicode_minus']=False
x=np.array(["东区","北区","南区","西区"])
y=np.array([8566,6482,5335,7310])
plt.barh(x,height=0.5,width=y,align="center")
plt.title("全国各分区任务量和完成量",loc="center")
for a,b in zip(x,y):
plt.text(b,a,b,ha='center',va='center',fontsize=12)
plt.ylabel("区域")
plt.xlabel("任务量")
plt.grid(False)
plt.savefig(r"C:\Users\xiaoLiu\Desktop\keshihua\5.jpg")
plt.show()
import numpy as np
import matplotlib.pyplot as plt
plt.subplot(1,1,1)
plt.rcParams['font.sans-serif']=['KaiTi']
plt.rcParams['axes.unicode_minus']=False
x=[5.5,6.6,8.1,15.8,19.5,22.4,28.3,28.9]
y=[2.38,3.85,4.41,5.67,5.44,6.03,8.15,6.87]
plt.scatter(x,y,marker="o",s=100)
plt.title("1-8月平均气温与啤酒销量关系图",loc="center")
plt.xlabel("平均气温")
plt.ylabel("啤酒销量")
plt.grid(False)
plt.savefig(r"C:\Users\xiaoLiu\Desktop\keshihua\6.jpg")
plt.show()
气泡图与散点图非常类似,可类比学习
import numpy as np
import matplotlib.pyplot as plt
plt.subplot(1,1,1)
plt.rcParams['font.sans-serif']=['KaiTi']
plt.rcParams['axes.unicode_minus']=False
x=np.array([5.5,6.6,8.1,15.8,19.5,22.4,28.3,28.9])
y=np.array([2.38,3.85,4.41,5.67,5.44,6.03,8.15,6.87])
colors=y*10
area=y*100
plt.scatter(x,y,c=colors,marker="o",s=area)
plt.title("1-8月平均气温与啤酒销量关系图",loc="center")
for a,b in zip(x,y):
plt.text(a,b,b,ha="center",va="center",fontsize=10,color="white")
plt.xlabel("平均气温")
plt.ylabel("啤酒销量")
plt.grid(False)
plt.savefig(r"C:\Users\xiaoLiu\Desktop\keshihua\7.jpg")
plt.show()
import matplotlib.pyplot as plt
import numpy as np
plt.subplot(1, 1, 1)
x = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
y1 = np.array([866, 2335, 5710, 6482, 6120, 1605, 3813, 4428, 4631])
y2 = np.array([433, 1167, 2855, 3241, 3060, 802, 1906, 2214, 2315])
plt.rcParams['font.sans-serif'] = ['KaiTi']
plt.rcParams['axes.unicode_minus'] = False
fig = plt.figure()
plt.figure(figsize=(8, 6))
labels = ['注册人数', '激活人数']
plt.stackplot(x, y1, y2, labels=labels)
plt.title("腾讯公司1-9月注册用户数", loc='center')
plt.xlabel('月份')
plt.ylabel('注册与激活人数')
plt.grid(False)
plt.legend()
plt.savefig(r"C:\Users\xiaoLiu\Desktop\keshihua\8.jpg")
plt.show()