import numpy as np from scipy.stats import beta import matplotlib.pyplot as plt # ab_pairs = [(2.81,21.92), (14.19,123.57)] ab_pairs = [(1.369012558,56.67609926,'24_female'), (6.088662555,346.8019442,'2530_female')] #x = np.linspace(0, 1, 1002)[1:-1] x = np.linspace(0, 1, 10000)[1:-1] for a, b, c in ab_pairs: print(a, b, c) dist = beta(a, b) y = dist.pdf(x) plt.plot(x, y, label=r'$\alpha=%.1f,\ \beta=%.1f$'+ u'grp = %s' % (a, b, c)) # 设置标题 plt.title(u'313 Beta Distribution') #设置 x,y 轴取值范围 plt.xlim(0, 1) plt.ylim(0, 100) plt.legend() plt.savefig("./beta.svg", format="svg") 报错TypeError: not all arguments converted during string formatting
时间: 2023-10-04 07:13:55 浏览: 78
这个错误是由于在保存图形时的字符串格式化部分出现了问题。你可以尝试使用 `.format()` 方法来格式化字符串,以解决这个问题。
以下是修正后的代码示例:
```python
import numpy as np
from scipy.stats import beta
import matplotlib.pyplot as plt
ab_pairs = [(1.369012558, 56.67609926, '24_female'), (6.088662555, 346.8019442, '2530_female')]
x = np.linspace(0, 1, 10000)[1:-1]
for a, b, c in ab_pairs:
print(a, b, c)
dist = beta(a, b)
y = dist.pdf(x)
plt.plot(x, y, label=r'$\alpha={:.1f},\ \beta={:.1f}$ grp = {}'.format(a, b, c))
plt.title('313 Beta Distribution')
plt.xlim(0, 1)
plt.ylim(0, 100)
plt.legend()
plt.savefig("./beta.svg", format="svg")
```
这样应该就可以成功保存图形了。请注意,我还修复了标题的格式和注释中的拼写错误。你可以根据需要进行调整。
相关问题
import pandas as pd import numpy as np from scipy import stats from sklearn.cluster import KMeans import matplotlib.pyplot as plt
这段代码的作用是导入一些常用的机器学习和数据分析库,包括pandas、numpy、scipy、sklearn和matplotlib.pyplot。其中,pandas和numpy用于数据处理和操作,scipy用于科学计算,sklearn用于机器学习算法,matplotlib用于数据可视化。另外,这段代码还使用了KMeans算法来进行聚类分析。
import numpy as np import scipy as sp from scipy.optimize import leastsq import matplotlib.pyplot as plt %matplotlib inline
这段代码是在Python中利用NumPy、SciPy和Matplotlib等库进行数据分析和可视化的基本导入语句。其中,NumPy是Python中用于科学计算的基础库,提供了多维数组对象和各种数学函数;SciPy是基于NumPy的一种高级模块,提供了许多数学、科学和工程计算中常用的函数和工具;Matplotlib是Python中著名的绘图库,可用于创建各种类型的图形。leastsq函数是SciPy库中的一个非线性最小二乘函数,用于拟合数据。"%matplotlib inline"是Jupyter Notebook中的魔法命令,用于在Notebook中直接显示Matplotlib绘制的图形。
阅读全文