利用python绘制CDF图的示例代码
一、code
import os.path import pandas as pd import numpy as np import matplotlib.pyplot as plt csv_path = r"XXX.csv" save_fig_path = os.path.join(os.path.split(csv_path)[0], "metrics_cdf.png") # 从CSV读取数据 data = pd.read_csv(csv_path)['XXX'] # 计算CDF data_sorted = np.sort(data)[::-1] cdf = np.arange(1, len(data_sorted)+1) / len(data_sorted) # 绘制CDF图 plt.plot(data_sorted, cdf, linewidth=2) # marker='.', plt.xlabel('Value') plt.ylabel('CDF') plt.xticks(np.arange(0, 1.1, 0.1)) plt.yticks(np.arange(0, 1.1, 0.1)) plt.title('Cumulative Distribution Function (CDF)') plt.grid(True) plt.savefig(save_fig_path) plt.show()
二、plt.plot的marker有什么可选的标识
在matplotlib库中,plt.plot函数的marker参数用于指定在图上绘制数据点的标识符。这些标识符可以帮助你在图中更清晰地标记数据点的位置。以下是一些常用的marker参数及其对应的标识符:
'.': 小点
',': 像素
'o': 圆圈
'v': 倒三角
'^': 正三角
'<': 左箭头
'>': 右箭头
'1': 下箭头
'2': 上箭头
's': 正方形
'p': 五角星
'*': 星号
'h': 六边形1
'H': 六边形2
'|': 垂直线
'_': 水平线
你可以在plt.plot函数中使用这些标识符来改变数据点的外观。例如,如果要在绘制的线上使用圆圈作为数据点的标识,可以这样设置:
plt.plot(x_data, y_data, marker='o')
其中,x_data和y_data分别是你要绘制的数据的X和Y值。根据需要,你可以选择不同的标识符来突出显示数据点。
三、方法补充
当然除了上文方法,小编还为大家整理了其他实现绘制CDF图的方法,希望对大家有所帮助
方法一
import numpy as np import statsmodels.api as sm import matplotlib.pyplot as plt data = [] ecdf = sm.distributions.ECDF(data) x = np.linspace(min(data), max(data)) y = ecdf(x) for a, b in zip(x, y): print(a, b) plt.plot(x, y, linewidth='5', label='XX', color="green", linestyle="dashed") plt.xlabel('XX', fontsize = 15) plt.ylabel('CDF', fontsize=15) plt.xlim(0, 1500) plt.ylim(0, 1) plt.xticks(fontsize=14) plt.yticks(fontsize=14) # plt.legend(loc='lower right', fontsize = 17) % 当有多个CDF曲线,对曲线进行标注 plt.show()
方法二
利用Matplotlib绘制CDF图
import matplotlib.pyplot as plt import numpy as np from scipy import stats data = np.random.normal(size=1000) plt.plot(sorted(data), stats.norm.cdf(sorted(data))) plt.show()
到此这篇关于利用python绘制CDF图的示例代码的文章就介绍到这了,更多相关python CDF图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Python的地形三维可视化Matplotlib和gdal使用实例
这篇文章主要介绍了Python的地形三维可视化Matplotlib和gdal使用实例,具有一定借鉴价值,需要的朋友可以了解下。2017-12-12Python正则表达式 r'(.*) are (.*?) .*'的深入理解
日常的开发工作中经常会有处理字符串的需求,简单的字符串处理,我们使用python内置的字符串处理函数就可以了,但是复杂的字符串匹配就需要借助正则表达式了,这篇文章主要给大家介绍了关于Python正则表达式 r‘(.*) are (.*?) .*‘的相关资料,需要的朋友可以参考下2022-07-07Jupyter Notebook 如何修改字体和大小以及更改字体样式
这篇文章主要介绍了Jupyter Notebook 如何修改字体和大小以及更改字体样式的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-06-06
最新评论