美文网首页
2021-12-31

2021-12-31

作者: 球果假水晶蓝 | 来源:发表于2022-01-06 19:38 被阅读0次
# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@FileName: mstplot元素
@Time: 2022/1/6,15:52
@Motto: 每天都要奥力给
"""
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

df = pd.read_csv(r'E:\numpy-pandas\mapping.csv')
print(df.head())
"""
   Unnamed: 0      Time     variable     value
0           1 -0.049505  0%(Control)  0.000000
1           2  0.891089  0%(Control)  0.803213
2           3  1.881188  0%(Control)  0.803213
3           4  3.019802  0%(Control)  0.803213
4           5  4.108911  0%(Control)  0.401606
"""
df1 = df[df.variable == '0%(Control)']
df2 = df[df.variable == '1%']
df3 = df[df.variable == '5%']
df4 = df[df.variable == '15%']

# =============================================================================
colors = ['#e41a1c', '#377eb8', '#4daf4a', '#984ea3']
markers = ['v', 'o', 'H', 'D']  # 设置点的形状
labels = ["0%(Control)", "1%", "5%", "15%"]  # 图例上字 即 labels
group = ["0%(Control)", "1%", "5%", "15%"]  # np.unique(df.variable)
# ----------------------------(a)-----------------------------------------------
fig = plt.figure(figsize=(4, 3), dpi=100)

for i in range(0, 4):
    temp_df = df[df.variable == group[i]]
    plt.plot(temp_df.Time, temp_df.value)
# plt.plot(df2.Time, df2.value)
# plt.plot(df3.Time, df3.value)
# plt.plot(df4.Time, df4.value)
plt.show()  #图形一
# fig.savefig("matplotlib1.pdf")
# -------------------------------(b)--------------------------------------------
fig = plt.figure(figsize=(4, 3), dpi=100)

for i in range(0, 4):
    """
    使用循环用列表索引 0 1 2 3分别取值 
    """
    plt.plot(df[df.variable == group[i]].Time, df[df.variable == group[i]].value,
             marker=markers[i], markerfacecolor=colors[i], markersize=5, markeredgewidth=0.05,  # 设置marker 点的格式
             color="k", linewidth=0.9, linestyle="-", label=group[i])  # 设置线的格式,包括颜色是黑色、线宽0.9、线形——、
# plt.legend(loc='upper left',edgecolor='none',facecolor='none')
plt.show()  #图形二

# fig.savefig("matplotlib2.pdf")
# ---------------------------------(c)------------------------------------------
fig = plt.figure(figsize=(4, 3), dpi=100)
"""
下面是没用循环,一条一条的往 fig上画线
"""
plt.plot(df1.Time, df1.value,
         marker=markers[0], markerfacecolor=colors[0], markersize=8, markeredgewidth=0.5,
         color="k", linewidth=0.5, linestyle="-", label=labels[0])
plt.plot(df2.Time, df2.value,
         marker=markers[1], markerfacecolor=colors[1], markersize=7, markeredgewidth=0.5,
         color="k", linewidth=0.5, linestyle="-", label=labels[1])
plt.plot(df3.Time, df3.value,
         marker=markers[2], markerfacecolor=colors[2], markersize=8, markeredgewidth=0.5,
         color="k", linewidth=0.5, linestyle="-", label=labels[2])
plt.plot(df4.Time, df4.value,
         marker=markers[3], markerfacecolor=colors[3], markersize=7, markeredgewidth=0.5,
         color="k", linewidth=0.5, linestyle="-", label=labels[3])

plt.xlabel("Time(d)", fontsize=14)  # 设置X轴 标题和字号大小
plt.ylabel("value", fontsize=14)  # 设置y轴 标题和字号大小

plt.xlim(-1, 20)  # X轴范围
plt.ylim(-2, 90)  # y轴范围
# 设置横轴记号
plt.xticks(np.linspace(0, 20, 11, endpoint=True), fontsize=10)  # X标签从0到20平均分为11 - 1份也就是10份。
# 设置纵轴的上下限
plt.yticks(np.linspace(0, 90, 10, endpoint=True), fontsize=10)  # y标签从0到90平均分为10-1 9份,还有大小

ax = plt.gca()  # plt.gca(),全称是get current axis
ax.spines['right'].set_color('r')  # 将右边的axis设置为红色
ax.spines['top'].set_color('b')  # 将上面的axis设置为绿色   ax.spines['right'].set_color('none'),取消右边 asix
plt.legend(loc='upper left', edgecolor='none', facecolor='none')   # 添加图例,位置左上边、边框颜色无、中间填充颜色无
plt.show()  # 图形三

# fig.savefig(r"F:\桌面\matplotlib3.pdf") 保存位置
Figure_1.png Figure_2.png Figure_3.png

《python数据可视化之美》 代码来自于作者张杰

相关文章

网友评论

      本文标题:2021-12-31

      本文链接:https://www.haomeiwen.com/subject/fipgqrtx.html