目录
- python通过Matplotlib绘制常见的几种图形
- 一、使用matplotlib对几种常见的图形进行绘制
- 1、柱状图
- 2、水平绘制柱状图
- 3、多个柱状图
- 4、叠加型柱状图
- 5、散点图
- 6、气泡图
- 7、直方图
- 8、箱线图
- 二、添加文字描述
- 三、多个图形描绘 subplots
- 四、使用Pandas 绘图
- 1、散点图
- 2、绘制柱状图
- 3、堆积的柱状图
- 4、水平的柱状图
- 5、直方图
- 6、箱线图
python通过Matplotlib绘制常见的几种图形
一、使用matplotlib对几种常见的图形进行绘制
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline #写了这个就可以不用写plt.show()
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
X = np.linspace(0, 2*np.pi,100)# 均匀的划分数据
Y = np.sin(X)
Y1 = np.cos(X)
plt.title("Hello World!!")
plt.plot(X,Y)
plt.plot(X,Y1)
X = np.linspace(0, 2*np.pi,100)
Y = np.sin(X)
Y1 = np.cos(X)
plt.subplot(211) # 等价于 subplot(2,1,1) #一个图版画两个图
plt.plot(X,Y)
plt.subplot(212)
plt.plot(X,Y1,color = 'r')
1、柱状图
data = [5,25,50,20]
plt.bar(range(len(data)),data)
2、水平绘制柱状图
data = [5,25,50,20]
plt.barh(range(len(data)),data)
3、多个柱状图
data = [[5,25,50,20],
[4,23,51,17],
[6,22,52,19]]
X = np.arange(4)
plt.bar(X + 0.00, data[0], color = 'b', width = 0.25,label = "A")
plt.bar(X + 0.25, data[1], color = 'g', width = 0.25,label = "B")
plt.bar(X + 0.50, data[2], color = 'r', width = 0.25,label = "C")
# 显示上面设置的 lable
plt.legend()
4、叠加型柱状图
data = [[5,25,50,20],
[4,23,51,17],
[6,22,52,19]]
X = np.arange(4)
plt.bar(X, data[0], color = 'b', width = 0.25)
plt.bar(X, data[1], color = 'g', width = 0.25,bottom = data[0])
plt.bar(X, data[2], color = 'r', width = 0.25,bottom = np.array(data[0]) + np.array(data[1]))
plt.show()
5、散点图
N = 50
x = np.random.rand(N)
y = np.random.rand(N)
plt.scatter(x, y)
6、气泡图
N = 50
x = np.random.rand(N)
y = np.random.rand(N)
colors = np.random.randn(N) # 颜色可以用数值表示
area = np.pi * (15 * np.random.rand(N))**2 # 调整大小
plt.scatter(x, y, c=colors, alpha=0.5, s = area)
N = 50
x = np.random.rand(N)
y = np.random.rand(N)
colors = np.random.randint(0,2,size =50)
plt.scatter(x, y, c=colors, alpha=0.5,s = area)
7、直方图
a = np.random.rand(100)
plt.hist(a,bins= 20)
plt.ylim(0,15)
a = np.random.randn(10000)
plt.hist(a,bins=50)
plt.title("标准正太分布")
8、箱线图
x = np.random.randint(20,100,size = (30,3))
plt.boxplot(x)
plt.ylim(0,120)
# 在x轴的什么位置填一个 label,我们这里制定在 1,2,3 位置,写上 A,B,C
plt.xticks([1,2,3],['A','B','C'])
plt.hlines(y = np.median(x,axis = 0)[0] ,xmin =0,xmax=3)
二、添加文字描述
1、文字描述一
# 设置画布颜色为 blue
fig, ax = plt.subplots(facecolor='blue')
# y 轴数据
data = [[5,25,50,20],
[4,23,51,17],
[6,22,52,19]]
X = np.arange(4)
plt.bar(X+0.00, data[0], color = 'darkorange', width = 0.25,label = 'A')
plt.bar(X+0.25, data[1], color = 'steelblue', width = 0.25,label="B")
plt.bar(X+0.50, data[2], color = 'violet', width = 0.25,label = 'C')
ax.set_title("Figure 2")
plt.legend()
# 添加文字描述 方法一
W = [0.00,0.25,0.50]
for i in range(3):
for a,b in zip(X+W[i],data[i]):
plt.text(a,b,"%.0f"% b,ha="center",va= "bottom")
plt.xlabel("Group")
plt.ylabel("Num")
plt.text(0.0,48,"TEXT")
2、文字描述二
X = np.linspace(0, 2*np.pi,100)# 均匀的划分数据
Y = np.sin(X)
Y1 = np.cos(X)
plt.plot(X,Y)
plt.plot(X,Y1)
plt.annotate('Points',
xy=(1, np.sin(1)),
xytext=(2, 0.5), fontsize=16,
arrowprops=dict(arrowstyle="->"))
plt.title("这是一副测试图!")
三、多个图形描绘 subplots
%pylab inline
pylab.rcParams['figure.figsize'] = (10, 6) # 调整图片大小
# np.random.seed(19680801)
n_bins = 10
x = np.random.randn(1000, 3)
fig, axes = plt.subplots(nrows=2, ncols=2)
ax0, ax1, ax2, ax3 = axes.flatten()
colors = ['red', 'tan', 'lime']
ax0.hist(x, n_bins, normed=1, histtype='bar', color=colors, label=colors)
ax0.legend(prop={'size': 10})
ax0.set_title('bars with legend')
ax1.hist(x, n_bins, normed=1, histtype='bar', stacked=True)
ax1.set_title('stacked bar')
ax2.hist(x, n_bins, histtype='step', stacked=True, fill=False)
ax2.set_title('stack step (unfilled)')
# Make a multiple-histogram of data-sets with different length.
x_multi = [np.random.randn(n) for n in [10000, 5000, 2000]]
ax3.hist(x_multi, n_bins, histtype='bar')
ax3.set_title('different sample sizes')
四、使用Pandas 绘图
1、散点图
import pandas as pd
df = pd.DataFrame(np.random.rand(50, 2), columns=['a', 'b'])
# 散点图
df.plot.scatter(x='a', y='b')
2、绘制柱状图
df = pd.DataFrame(np.random.rand(10,4),columns=['a','b','c','d'])
# 绘制柱状图
df.plot.bar()
3、堆积的柱状图
# 堆积的柱状图
df.plot.bar(stacked=True)
4、水平的柱状图
# 水平的柱状图
df.plot.barh(stacked=True)
5、直方图
df = pd.DataFrame({'a':np.random.randn(1000)+1,'b':np.random.randn(1000),'c':np.random.randn(1000) - 1}, columns=['a', 'b', 'c'])
# 直方图
df.plot.hist(bins=20)
6、箱线图
# 箱线图
df = pd.DataFrame(np.random.rand(10, 5), columns=['A', 'B', 'C', 'D', 'E'])
df.plot.box()
相关推荐:
SEO挣钱之道:如何通过SEO实现网络盈利,宁晋网站建设商家
2025年SEO最新技术:让你的网站脱颖而出!,ai少女特色
ChatGPT画布打不开?如何解决这一常见问题?,Ai怎么储存为Ai格式在桌面
SEO搜外:全球搜索引擎优化的秘密武器,如何选择网站建设类型呢
OpenAI账号申诉怎么办?全方位解析解决方案,ai写作免费公众号下载
怎么用AI写文章:高效创作的秘诀
用AI写科普文章:科技改变写作的未来
SEO管家:为您的网站保驾护航的智能SEO助手,网站推广作用有哪些类型
SEO教研:数字营销新趋势,提升网站流量与转化率的关键,齐鲁证券网站建设
seo网站反链是什么,网站反链怎么做 ,ai插画头像卡通
ChatGPT不能访问,我的学术水平直线下降,泰州大数据ai艾灸价格
SEO而且:打造高效网站流量增长的秘密武器,滨江网站推广营销
什么是seo如何进行seo,何谓seo ,红米的AI摄影什么意思
seo需要什么人员,seo需要什么技能 ,画大学ai
SEO添加:提升网站流量与排名的必备策略,seo团队成员中国人
seo计算了什么,seo的常用术语 ,ai智能有意思的口令
ChatGPT常见问题汇总:解答你关于AI的一切疑惑,松鼠ai智能教适应教育
SEO优化10种策略:提升网站排名的有效方法,帅气ai男头白底
SEO软优化:助力网站实现流量爆发的秘密武器,延平区网页seo
AI免费写文:创作新时代的高效助手
SEO新闻:2025年最新趋势与最佳实践,你不可错过的SEO战略,郑州网络营销推广的优势
SEO搜索关键词是什么意思?全方位解析关键词优化的核心要素,lol ai图片
ChatGPT维护-智能时代的数字助手,如何让你的工作更高效,ai智能救援
SEO网络营销:如何通过精准优化提升品牌价值,青州建设网站电话
seo资源是什么意思,seo资源怎么打开 ,梅州ai自动插件加工
ChatGPT崩溃!用户反馈网页端无法访问,修复急需,ai院子
提升写作效率,释放创意潜力文章生成AI软件的未来
AI自动生成:开启智能时代的无限可能,ai熊熊图片
GoogleGTP-智能时代的革命性突破,人工智能的新纪元,ai可以降论文ai率吗
AI工具汇总网站,让科技为您的工作加速
seo要寻找什么资源,怎么找seo ,ai插画描边
ChatGPT3.5需要登录使用吗?AI使用的真相!,电脑版写作ai推荐怎么关闭
seo需要会什么,seo要会些什么 ,ai313414919
AI一键生成文章,写作新境界
SEO汇报:如何通过数据分析提升网站排名,助力企业业绩增长,免费推广网站大全百度经验
优化*:打造更加高效、创新的娱乐体验,石排网站建设制作多少钱
ChatGPT无法使用?了解原因及解决方法,轻松恢复智能对话体验!,ai满版图案
ChatGPT破解:人工智能的无限潜力与破解秘笈,意识变ai
SEO优化:提升网站流量的终极指南,揭阳网站快速推广
Chat启用后ESX连不上?解决方法一网打尽!,为什么AI续写这么离谱
什么是“神马关键词”?如何用它提升你的网络营销效果?,新闻发布网站怎么做推广
优化综合:引领高效发展的智慧之道,电影营销的推广方式
SEO部:开启数字化营销新纪元的幕后英雄,株洲营销推广是什么公司
seo软文用什么论坛,seo软文是什么意思 ,爱字幕的AI变脸不见了
常用AI工具,高效智能生活
OpenAI推出的GPT-4Turbo大幅降低了AI应用成本,推动了AI技术的普及化,ai*版
企业营销:如何在竞争激烈的市场中脱颖而出,美装网站Seo优化
ChatGPT为什么打不开?背后原因与解决方案,慧ai写作
ChatGPT服务部分恢复:人工智能助力全新体验,ai对象菜单
ChatGPTCanvex打不开?详细分析及解决方法助你顺利使用,ai2.5d网格线去除