python 生成 饼图
时间: 2023-10-13 22:22:05 浏览: 45
以下是使用 matplotlib 库和 pandas 库生成饼图的示例代码:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 创建数据
data = pd.Series([30, 20, 50], index=['A', 'B', 'C'])
# 生成饼图
plt.pie(data, labels=data.index, autopct='%1.1f%%')
plt.axis('equal')
plt.show()
```
运行上述代码,将会生成一个饼图,其中 A、B、C 三个部分分别占据了 30%、20%、50% 的比例。你可以根据需要修改数据和标签,以及调整饼图的样式。
相关问题
python生成饼图并在html中展示
要在Python中生成饼图并在HTML中展示,可以使用Matplotlib和Flask库。
首先,使用Matplotlib生成饼图:
```python
import matplotlib.pyplot as plt
# 创建数据
labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]
# 绘制饼图
plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90)
plt.axis('equal')
# 保存图像
plt.savefig('pie_chart.png')
```
然后,使用Flask将生成的图像在HTML中展示:
```python
from flask import Flask, render_template, send_file
app = Flask(__name__)
# 定义路由
@app.route('/')
def index():
# 在HTML中展示饼图
return render_template('index.html', chart='/chart')
# 定义路由
@app.route('/chart')
def chart():
# 返回生成的饼图
return send_file('pie_chart.png', mimetype='image/png')
if __name__ == "__main__":
app.run(debug=True)
```
最后,在HTML模板中展示饼图:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Pie Chart</title>
</head>
<body>
<h1>Pie Chart</h1>
<img src="{{ url_for('chart') }}" alt="Pie Chart">
</body>
</html>
```
这样,就可以在本地运行Flask应用程序,并在浏览器中查看生成的饼图了。
python生成饼图时无法显示汉字怎么版
生成饼图时无法显示汉字,可能是因为matplotlib默认使用的字体不支持中文。你可以通过以下步骤解决这个问题:
1. 查看matplotlib默认使用的字体:
```python
import matplotlib.pyplot as plt
print(plt.rcParams['font.family'])
```
输出结果可能为['sans-serif']或['Arial']等。
2. 安装中文字体,比如SimHei、微软雅黑等。你可以在操作系统中自带的字体文件夹中寻找,或者在网上下载。
3. 配置matplotlib使用中文字体。将以下代码添加到生成饼图的代码之前:
```python
import matplotlib.font_manager as fm
myfont = fm.FontProperties(fname='字体文件的路径')
plt.rcParams['font.family'] = myfont.get_name()
```
其中,将'字体文件的路径'替换为你安装的中文字体文件的路径。比如,如果你下载了SimHei字体并安装在了'C:\Windows\Fonts\SimHei.ttf',则可以将myfont的初始化代码改为:
```python
myfont = fm.FontProperties(fname='C:\Windows\Fonts\SimHei.ttf')
```
4. 重新运行生成饼图的代码,中文应该能够正常显示了。
完整的示例代码如下:
```python
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
# 查看默认字体
print(plt.rcParams['font.family'])
# 配置中文字体
myfont = fm.FontProperties(fname='字体文件的路径')
plt.rcParams['font.family'] = myfont.get_name()
# 生成饼图
labels = ['苹果', '香蕉', '橘子']
sizes = [30, 40, 20]
plt.pie(sizes, labels=labels, autopct='%1.1f%%')
plt.show()
```
注意,中文字体文件的路径需要使用反斜杠进行转义,或者使用正斜杠。如果你使用的是Jupyter Notebook或者其他Python IDE,可能需要重启内核才能使字体配置生效。