图表样式的美化

图表样式的美化使用颜色 import numpy as np import matplotlib pyplot as plt plt rcParams font sans serif SimHei plt rcParams axes unicode minus False x np

大家好,我是讯享网,很高兴认识大家。

使用颜色

import numpy as np import matplotlib.pyplot as plt plt.rcParams["font.sans-serif"] = ["SimHei"] plt.rcParams["axes.unicode_minus"] = False x = np.arange(5) y1 = [1200, 2400, 1800, 2200, 1600] y2 = [1050, 2100, 1300, 1600, 1340] bar_width = 0.6 tick_label = [" 家庭 ", " 小说 ", " 心理 ", " 科技 ", " 儿童 "] fig = plt.figure() ax = fig.add_subplot(111) # 绘制柱形图 , 并使用颜色 ax.bar(x, y1, bar_width, color="#FFCC00", align="center", label=" 地区 1") ax.bar(x, y2, bar_width, bottom=y1, color="#B0C4DE", align="center", label=" 地区 2") ax.set_ylabel(" 采购数量 ( 本 )") ax.set_xlabel(" 图书种类 ") ax.set_title(" 地区 1 和地区 2 对各类图书的采购情况 ") ax.grid(True, axis='y', color="gray", alpha=0.2) ax.set_xticks(x) ax.set_xticklabels(tick_label) ax.legend() plt.show()

讯享网


讯享网

 选择线型

讯享网import numpy as np import matplotlib.pyplot as plt plt.rcParams["font.sans-serif"] = ["SimHei"] plt.rcParams["axes.unicode_minus"] = False # 汇率 eurcny_2017 = np.array([6.8007, 6.8007, 6.8015, 6.8015, 6.8060, 6.8060, 6.8060, 6.8036, 6.8025, 6.7877, 6.7835, 6.7758, 6.7700, 6.7463, 6.7519, 6.7511, 6.7511, 6.7539, 6.7265]) eurcny_2019 = np.array([6.8640, 6.8705, 6.8697, 6.8697, 6.8697, 6.8881, 6.8853, 6.8856, 6.8677, 6.8662, 6.8662, 6.8662, 6.8827, 6.8761, 6.8635, 6.8860, 6.8737, 6.8796, 6.8841]) date_x = np.array([3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 18, 19, 24, 25, 26, 31]) fig = plt.figure() ax = fig.add_subplot(111) # 第 1 条折线 : 湖绿色 , 实线 , 线宽为 2 ax.plot(date_x, eurcny_2017, color='#006374', linewidth=2, label='2017 年 7 月美元 / 人民币汇率 ') # 第 2 条折线 : 紫色 , 长虚线 , 线宽为 2 ax.plot(date_x, eurcny_2019, color='#8a2e76', linestyle='--', linewidth=2, label='2019 年 7 月美元 / 人民币汇率 ') ax.set_title('2017 年 7 月与 2019 年 7 月美元 / 人民币汇率走势 ') ax.set_xlabel(' 日期 ') ax.set_ylabel(' 汇率 ') ax.legend() plt.show()

 添加数据标记

import numpy as np import matplotlib.pyplot as plt plt.rcParams["font.sans-serif"] = ["SimHei"] plt.rcParams["axes.unicode_minus"] = False sale_a = [2144, 4617, 7674, 6666] sale_b = [853, 1214, 2414, 4409] sale_c = [153, 155, 292, 680] fig = plt.figure() ax = fig.add_subplot(111) # 绘制具有不同线条样式的折线图 ax.plot(sale_a, 'D-', sale_b, '^:', sale_c, 's--') ax.grid(alpha=0.3) ax.set_ylabel(' 销售额 ( 万元 )') ax.set_xticks(np.arange(len(sale_c))) ax.set_xticklabels([' 第 1 季度 ',' 第 2 季度 ', ' 第 3 季度 ', ' 第 4 季度 ']) ax.legend([' 产品 A',' 产品 B',' 产品 C']) plt.show()

 设置字体

讯享网import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False x = np.arange(4, 19) y_max =[32, 33, 34, 34, 33, 31, 30, 29, 30, 29, 26, 23, 21, 25, 31] y_min = [19, 19, 20, 22, 22, 21, 22, 16, 18, 18, 17, 14, 15, 16, 16] # 可以多次调用 plot() 函数 plt.plot(x, y_max, marker='o', label=' 最高温度 ') plt.plot(x, y_min, marker='o', label=' 最低温度 ') # 为图表添加注释并设置字体的样式 x_temp = 4 for y_h, y_l in zip(y_max, y_min): plt.text(x_temp-0.3, y_h + 0.7, y_h, family='SimHei', fontsize=8, fontstyle='normal') plt.text(x_temp-0.3, y_l + 0.7, y_l, family='SimHei', fontsize=8, fontstyle='normal') x_temp += 1 plt.title(' 未来 15 天最高气温和最低气温的走势 ') plt.xlabel(' 日期 ') plt.ylabel(' 温度 ($^\circ$C)') plt.ylim(0, 40) plt.legend() plt.show()

import numpy as np import matplotlib.pyplot as plt def koch_snowflake(order, scale=10): def _koch_snowflake_complex(order): if order == 0: # 初始三角形 angles = np.array([0, 120, 240]) + 90 return scale / np.sqrt(3) * np.exp(np.deg2rad(angles) * 1j) else: ZR = 0.5 - 0.5j * np.sqrt(3) / 3 p1 = _koch_snowflake_complex(order - 1) # 起点 p2 = np.roll(p1, shift=-1) # 终点 dp = p2 - p1 # 连接向量 new_points = np.empty(len(p1) * 4, dtype=np.complex128) new_points[::4] = p1 new_points[1::4] = p1 + dp / 3 new_points[2::4] = p1 + dp * ZR new_points[3::4] = p1 + dp / 3 * 2 return new_points points = _koch_snowflake_complex(order) x, y = points.real, points.imag return x, y x, y = koch_snowflake(order=2) fig = plt.figure() ax = fig.add_subplot(111) ax.fill(x, y, facecolor='lightsalmon', edgecolor='orangered', linewidth=3) plt.show()

 

 

小讯
上一篇 2025-02-21 14:48
下一篇 2025-01-27 13:45

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/34751.html