matplotlib画直方图(2)

本文介绍了使用Python的matplotlib库进行数据可视化的方法,包括绘制曲线、添加注释、设置标题和坐标轴等基本操作。
import numpy as np
import matplotlib.pyplot as plt

ax=plt.subplot(111)
t=np.arange(0,5,0.01)
s=np.cos(2*np.pi*t)
line=plt.plot(t,s,lw=2)
plt.annotate('local max',xy=(2,1),xytext=(3,1.5),
             arrowprops=dict(facecolor='black',shrink=0.05))
plt.ylim(-2,2)

 

import matplotlib.pyplot as plt
fig = plt.figure()
fig.suptitle('bold figure suptitle', fontsize=14, fontweight='bold')
ax = fig.add_subplot(111)
fig.subplots_adjust(top=0.85)
ax.set_title('axes title')
ax.set_xlabel('xlabel')
ax.set_ylabel('ylabel')
ax.text(3, 8, 'boxed italics text in data coords', style='italic',
bbox={'facecolor':'red', 'alpha':0.5, 'pad':10})
ax.text(2, 6, r'an equation: $E=mc^2$', fontsize=15)
ax.text(3, 2, unicode('unicode: Institut f\374r Festk\366rperphysik', 'latin-1'))
ax.text(0.95, 0.01, 'colored text in axes coords',
verticalalignment='bottom', horizontalalignment='right',
transform=ax.transAxes,
color='green', fontsize=15)
ax.plot([2], [1], 'o')
ax.annotate('annotate', xy=(2, 1), xytext=(3, 4),
arrowprops=dict(facecolor='black', shrink=0.05))
ax.axis([0, 10, 0, 10])
plt.show()



 

### 使用Matplotlib绘制直方图的方法及示例 以下是一个完整的代码示例,展示如何使用Matplotlib绘制直方图,并设置中文支持、调整样式和添加注释。 ```python import matplotlib.pyplot as plt import numpy as np # 设置中文字体支持 plt.rcParams['font.sans-serif'] = ['SimHei'] # 黑体[^4] plt.rcParams['axes.unicode_minus'] = False # 解决负号显示问题[^4] # 生成随机数据 data = np.random.normal(loc=70, scale=10, size=500) # 绘制基础直方图 plt.hist(data, bins=20, color='skyblue', edgecolor='black', rwidth=0.8, label="分数分布") # 添加标题和标签 plt.title("学生成绩分布直方图", fontsize=16) # 设置标题[^4] plt.xlabel("分数区间", fontsize=14) # 设置X轴标签 plt.ylabel("人数", fontsize=14) # 设置Y轴标签[^4] # 添加网格 plt.grid(True, linestyle='--', alpha=0.5) # 添加虚线网格[^4] # 添加图例 plt.legend(fontsize=12) # 设置图例字体大小 # 显示图形 plt.show() ``` ### 代码说明 - **中文字体设置**:通过`plt.rcParams`设置字体为`SimHei`(黑体),确保中文能够正确显示。 - **数据生成**:使用`numpy`生成一组符合正态分布的随机数据,模拟学生的成绩分布。 - **直方图绘制**:调用`plt.hist()`函数绘制直方图,指定颜色、边框颜色、宽度和标签等参数[^4]。 - **标题与标签**:通过`plt.title()`、`plt.xlabel()`和`plt.ylabel()`设置图形的标题和坐标轴标签。 - **网格添加**:使用`plt.grid()`方法添加虚线形式的网格,增强图形可读性。 - **图例显示**:通过`plt.legend()`方法添加图例,便于区分直方图表示的数据。 ### 频率分布直方图示例 如果需要绘制频率分布直方图,可以将`density=True`作为参数传递给`plt.hist()`函数。以下是一个示例: ```python # 绘制频率分布直方图 nums, bins, patches = plt.hist(data, bins=20, color='lightgreen', edgecolor='black', density=True) # 在每个柱形上添加数值标签 for num, bin in zip(nums, bins): plt.annotate(f"{num:.4f}", xy=(bin, num), xytext=(bin + 0.2, num + 0.0005)) # 显示图形 plt.show() ``` 此代码片段展示了如何在频率分布直方图中为每个柱形添加具体的数值标签[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值