pycharm生成图片

news2025/7/27 13:58:00

文章目录

    • 图片例子
      • 生成图片并储存,设置中文字体支持
      • 两条线
      • 绘制散点图和直方图
      • 绘制条形图(bar)
      • 绘制条形图(横着的)(plt.barh)
      • 分组的条形图
    • 颜色和线条风格
      • 1. **颜色字符 (color)**
        • 其他颜色指定方式:
        • 示例:
      • 2. **线条风格字符 (linestyle)**
        • 示例:
      • 3. **标记样式字符 (marker)**
        • 标记相关参数:
        • 示例:
      • 4. **组合使用**
      • 5. **其他注意事项**
      • 示例代码
      • 参考

图片例子

生成图片并储存,设置中文字体支持

from matplotlib import pyplot as plt
import random
import os

# 设置中文字体支持
plt.rcParams["font.family"] = ["Microsoft YaHei"]
plt.rcParams['axes.unicode_minus'] = False

# 生成数据
x = list(range(0, 120))
y = [random.randint(20, 35) for _ in range(120)]

# x轴标签
_xtick_labels = [f"10点{i}分" for i in range(60)] + [f"11点{i}分" for i in range(60)]

# 创建图形
plt.figure(figsize=(20, 8), dpi=80)
plt.plot(x, y, color='blue', linestyle='-', marker='o', markersize=4)
plt.xticks(x[::3], _xtick_labels[::3], rotation=45, ha='right', fontsize=10)

# 标题和标签
plt.title("Random Values Over Time (10:00-11:59)", fontsize=14)
plt.xlabel("Time", fontsize=12)
plt.ylabel("Value", fontsize=12)
plt.grid(True, linestyle='--', alpha=0.7)
plt.tight_layout()

# ✅ 正确保存路径:桌面
save_path = r"C:\Users\35986\Desktop\time_series_plot.png"
plt.savefig(save_path)

print("图片成功保存到桌面!路径为:", save_path)
plt.show()

在这里插入图片描述

两条线

from matplotlib import pyplot as plt

# Data
a = [1, 0, 1, 1, 2, 4, 3, 2, 3, 4, 4, 5, 6, 5, 4, 3, 3, 1, 1, 1]  # You
b = [1, 0, 3, 1, 2, 2, 3, 3, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 11]  # Desk Mate
ages = list(range(11, 31))  # Ages 11 to 30

# Create the plot
plt.figure(figsize=(10, 6), dpi=100)
plt.plot(ages, a, color='blue', linestyle='-', marker='o', markersize=5, label='You')
plt.plot(ages, b, color='orange', linestyle='-', marker='s', markersize=5, label='Desk Mate')

# Customize the plot
plt.title('Number of Partners by Age (11-30)', fontsize=14)
plt.xlabel('Age', fontsize=12)
plt.ylabel('Number of Partners', fontsize=12)
plt.xticks(ages)  # Show every age on x-axis
plt.grid(True, linestyle='--', alpha=0.7)
plt.legend()

# Adjust layout to prevent label cutoff
plt.tight_layout()

# Save the plot to the desktop (adjust the path for your system)
save_path = r"D:\my_app\python\python  project\figure\time_series_plot.png"
plt.savefig(save_path)
print(f"Plot saved to: {save_path}")

# Display the plot


plt.show()

在这里插入图片描述

绘制散点图和直方图

import matplotlib.pyplot as plt
import numpy as np

# Data
a = [11, 17, 16, 11, 12, 11, 12, 6, 6, 7, 8, 9, 12, 15, 14, 17, 18, 21, 16, 17, 20, 14, 15, 15, 15, 19, 21, 22, 22, 22, 23]  # March
b = [26, 26, 28, 19, 21, 17, 16, 19, 18, 20, 20, 19, 22, 23, 17, 20, 21, 20, 22, 15, 11, 15, 5, 13, 17, 10, 11, 13, 12, 13, 6]  # October
days = list(range(1, 32))  # Days 1 to 31

# Create figure with two subplots
plt.figure(figsize=(12, 8))

# Subplot 1: Scatter plot
plt.subplot(2, 1, 1)
plt.scatter(days, a, color='b', marker='o', s=50, label='March 2016')
plt.scatter(days, b, color='r', marker='s', s=50, label='October 2016')
plt.title('Daily High Temperatures in Beijing (March vs. October 2016)', fontsize=14)
plt.xlabel('Day of Month', fontsize=12)
plt.ylabel('Temperature (°C)', fontsize=12)
plt.xticks(days[::2])  # Show every other day for clarity
plt.grid(True, linestyle='--', alpha=0.7)
plt.legend()

# Subplot 2: Histogram of temperature frequencies
plt.subplot(2, 1, 2)
plt.hist(a, bins=range(min(a + b), max(a + b) + 2), alpha=0.5, color='b', label='March 2016')
plt.hist(b, bins=range(min(a + b), max(a + b) + 2), alpha=0.5, color='r', label='October 2016')
plt.title('Temperature Distribution (March vs. October 2016)', fontsize=14)
plt.xlabel('Temperature (°C)', fontsize=12)
plt.ylabel('Count', fontsize=12)
plt.grid(True, linestyle='--', alpha=0.7)
plt.legend()

# Adjust layout and display
plt.tight_layout()
plt.show()

在这里插入图片描述

绘制条形图(bar)

import matplotlib.pyplot as plt
import numpy as np

# 设置中文字体支持
plt.rcParams["font.family"] = ["Microsoft YaHei"]
plt.rcParams['axes.unicode_minus'] = False

# Data
a = ["战狼2", "速度与激情8", "功夫瑜伽", "西游伏妖篇", "变形金刚5:最后的骑士",
     "摔跤吧!爸爸", "加勒比海盗5:死无对证", "金刚:骷髅岛", "极限特工:终极回归",
     "生化危机6:终章", "乘风破浪", "神偷奶爸3", "智取威虎山", "大闹天竺",
     "金刚狼3:殊死一战", "蜘蛛侠:英雄归来", "悟空传", "银河护卫队2", "情圣", "新木乃伊"]
b = [56.01, 26.94, 17.53, 16.49, 15.45, 12.96, 11.8, 11.61, 11.28, 11.12,
     10.49, 10.3, 8.75, 7.55, 7.32, 6.99, 6.88, 6.86, 6.58, 6.23]  # Unit: 亿元

# Create figure
plt.figure(figsize=(12, 6))

# Plot bar chart
bars = plt.bar(a, b, color='skyblue', edgecolor='black')

# Add data labels on top of each bar
for bar in bars:
    yval = bar.get_height()
    plt.text(bar.get_x() + bar.get_width()/2, yval + 0.5, f'{yval}',
             ha='center', va='bottom', fontsize=8)

# Customize the plot
plt.title('Top 20 Movies by Box Office in Mainland China (2017)', fontsize=14)
plt.xlabel('Movie Title', fontsize=12)
plt.ylabel('Box Office (Billions of CNY)', fontsize=12)
plt.xticks(rotation=45, ha='right', fontsize=10)  # Rotate x-axis labels for readability
plt.grid(True, axis='y', linestyle='--', alpha=0.7)  # Grid on y-axis
plt.tight_layout()

# Save the plot
plt.savefig('box_office_bar_chart.png')

# Display the plot
plt.show()

在这里插入图片描述

绘制条形图(横着的)(plt.barh)

import matplotlib.pyplot as plt
import numpy as np
# 设置中文字体支持
plt.rcParams["font.family"] = ["Microsoft YaHei"]
plt.rcParams['axes.unicode_minus'] = False

# Data
a = ["战狼2", "速度与激情8", "功夫瑜伽", "西游伏妖篇", "变形金刚5:最后的骑士",
     "摔跤吧!爸爸", "加勒比海盗5:死无对证", "金刚:骷髅岛", "极限特工:终极回归",
     "生化危机6:终章", "乘风破浪", "神偷奶爸3", "智取威虎山", "大闹天竺",
     "金刚狼3:殊死一战", "蜘蛛侠:英雄归来", "悟空传", "银河护卫队2", "情圣", "新木乃伊"]
b = [56.01, 26.94, 17.53, 16.49, 15.45, 12.96, 11.8, 11.61, 11.28, 11.12,
     10.49, 10.3, 8.75, 7.55, 7.32, 6.99, 6.88, 6.86, 6.58, 6.23]  # Unit: 亿元

# Sort data by box office earnings (descending)
sorted_data = sorted(zip(b, a), reverse=True)
b_sorted, a_sorted = zip(*sorted_data)

# Create figure
plt.figure(figsize=(10, 8))

# Plot horizontal bar chart
plt.barh(a_sorted, b_sorted, color='#1f77b4', edgecolor='none')  # Match the blue color from the image

# Customize the plot
plt.title('2017年内地电影票房前20', fontsize=14)  # Title: "Top 20 Movies by Box Office in Mainland China 2017"
plt.xlabel('票房(亿元)', fontsize=12)  # X-axis: "Box Office (Billions of CNY)"
plt.ylabel('电影名', fontsize=12)  # Y-axis: "Movie Title"
plt.tight_layout()

# Save the plot
plt.savefig('horizontal_box_office_bar_chart_matching_image.png')

# Display the plot
plt.show()

在这里插入图片描述

分组的条形图

先给每天分组,再用for循环画图。

import matplotlib.pyplot as plt
import numpy as np

# 设置中文字体支持
plt.rcParams["font.family"] = ["Microsoft YaHei"]
plt.rcParams['axes.unicode_minus'] = False

# Data
a = ["猩球崛起3:终极之战", "敦刻尔克", "蜘蛛侠:英雄归来", "战狼2"]
b_14 = [2358, 399, 2358, 362]  # 2017-09-14
b_15 = [12357, 156, 2045, 168]  # 2017-09-15
b_16 = [15746, 312, 4497, 319]  # 2017-09-16

# Prepare data for grouped bar chart
days = ['2017-09-14', '2017-09-15', '2017-09-16']
data = np.array([b_14, b_15, b_16]).T  # Transpose to group by movie

# Set bar width and positions
bar_width = 0.2
x = np.arange(len(days))

# Create figure
plt.figure(figsize=(8, 6))

# Plot bars for each movie
for i in range(len(a)):
    plt.bar(x + i * bar_width, data[i], bar_width, label=a[i], edgecolor='black')

# Add data labels
for i in range(len(a)):
    for j in range(len(days)):
        plt.text(x[j] + i * bar_width, data[i][j] + 200, f'{data[i][j]}',
                 ha='center', va='bottom', fontsize=8)

# Customize the plot
plt.title('2017年9月14-16日电影票房对比', fontsize=14)  # Title: "Box Office Comparison for Sep 14-16, 2017"
plt.xlabel('日期', fontsize=12)  # X-axis: "Date"
plt.ylabel('票房 (单位未知)', fontsize=12)  # Y-axis: "Box Office (Unit Unknown)"
plt.xticks(x + bar_width * (len(a) - 1) / 2, days, fontsize=10)
plt.legend(fontsize=10)
plt.grid(True, axis='y', linestyle='--', alpha=0.7)
plt.tight_layout()

# Save the plot
plt.savefig('grouped_bar_chart_movie_box_office.png')

# Display the plot
plt.show()

在这里插入图片描述

颜色和线条风格

在 Python 的 Matplotlib 库中,绘图时可以通过 color 参数指定颜色,通过 linestyle 参数指定线条风格,通过 marker 参数指定数据点标记样式。以下是常用的颜色字符、线条风格字符和标记样式的详细说明:

1. 颜色字符 (color)

Matplotlib 支持多种方式指定颜色,包括单字符缩写、完整颜色名称、十六进制代码、RGB/RGBA 元组等。常用的单字符颜色缩写如下:

字符颜色
'b'蓝色 (Blue)
'g'绿色 (Green)
'r'红色 (Red)
'c'青色 (Cyan)
'm'洋红 (Magenta)
'y'黄色 (Yellow)
'k'黑色 (Black)
'w'白色 (White)
其他颜色指定方式:
  • 完整颜色名称:如 'blue', 'green', 'red' 等。
  • 十六进制代码:如 '#FF0000' (红色)。
  • RGB 元组:如 (1, 0, 0) (红色,值范围 0-1)。
  • RGBA 元组:如 (1, 0, 0, 0.5) (半透明红色)。
  • 灰度值:如 '0.5' (中灰色,值范围 0-1)。
示例:
plt.plot(x, y, color='r')  # 红色
plt.plot(x, y, color='blue')  # 完整名称
plt.plot(x, y, color='#00FF00')  # 绿色(十六进制)
plt.plot(x, y, color=(0, 0, 1))  # 蓝色(RGB)

2. 线条风格字符 (linestyle)

Matplotlib 支持多种线条风格,通过 linestyle 或简写 ls 参数指定。常用的线条风格字符如下:

字符风格
'-''solid'实线
'--''dashed'虚线
'-.''dashdot'点划线
':''dotted'点线
'None'''无线条
示例:
plt.plot(x, y, linestyle='--')  # 虚线
plt.plot(x, y, ls='-')  # 实线
plt.plot(x, y, ls=':')  # 点线

3. 标记样式字符 (marker)

标记用于在数据点上绘制特定符号,通过 marker 参数指定。常用的标记样式字符如下:

字符标记样式
'o'圆圈
's'正方形
'p'五边形
'^'上三角形
'v'下三角形
'<'左三角形
'>'右三角形
'*'星号
'D'钻石形
'+'加号
'x'叉号
'.'
','像素点
标记相关参数:
  • markersizems:设置标记大小,如 markersize=5
  • markerfacecolormfc:设置标记填充颜色。
  • markeredgecolormec:设置标记边框颜色。
示例:
plt.plot(x, y, marker='o', markersize=5, markerfacecolor='red')  # 红色填充圆圈
plt.plot(x, y, marker='s', ms=6)  # 正方形标记
plt.plot(x, y, marker='^')  # 上三角形标记

4. 组合使用

plt.plot() 中,可以通过一个格式字符串快速指定颜色、线条风格和标记样式,格式为 [color][marker][linestyle]。例如:

plt.plot(x, y, 'ro-')  # 红色圆圈实线
plt.plot(x, y, 'bs--')  # 蓝色正方形虚线
plt.plot(x, y, 'g^:')  # 绿色三角形点线

5. 其他注意事项

  • 颜色列表:Matplotlib 还支持更广泛的颜色表(如 Tableau 颜色、CSS 颜色),可通过 plt.colormaps() 查看。
  • 线条宽度:通过 linewidthlw 参数设置线条粗细,如 linewidth=2
  • 透明度:通过 alpha 参数设置透明度(0 到 1),如 alpha=0.5
  • 更多标记样式:Matplotlib 支持超过 20 种标记样式,完整列表可参考 Matplotlib 文档。

示例代码

以下是一个综合示例,展示不同颜色、线条风格和标记样式:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 10)
y1 = np.sin(x)
y2 = np.cos(x)

plt.figure(figsize=(8, 5))
plt.plot(x, y1, 'ro-', linewidth=2, markersize=8, label='Sin')  # 红色圆圈实线
plt.plot(x, y2, 'bs--', linewidth=1.5, markersize=6, label='Cos')  # 蓝色正方形虚线
plt.title('Example Plot', fontsize=14)
plt.xlabel('X', fontsize=12)
plt.ylabel('Y', fontsize=12)
plt.grid(True)
plt.legend()
plt.tight_layout()
plt.show()

参考

  • Matplotlib 官方文档:https://matplotlib.org/stable/
  • 颜色:https://matplotlib.org/stable/gallery/color/named_colors.html
  • 线条和标记:https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.plot.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2397251.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android 云手机横屏模式下真机键盘遮挡输入框问题处理

一、背景 打开横屏应用,点击云机EditText输入框,输入框被键盘遮挡,如下图&#xff1a; 未打开键盘状态: 点击第二个输入框,键盘遮挡了输入框&#xff1a; 二、解决方案&#xff08;推荐第三中方案,博主采用的也是第三种方案&#xff09; 博主这里整理了三种方案&#xff1a;…

Axure设计案例——科技感对比柱状图

想让数据对比展示摆脱平淡无奇&#xff0c;瞬间抓住观众的眼球吗&#xff1f;那就来看看这个Axure设计的科技感对比柱状图案例&#xff01;科技感设计风格运用独特元素打破传统对比柱状图的常规&#xff0c;营造出一种极具冲击力的视觉氛围。每一组柱状体都仿佛是科技战场上的士…

FPGA仿真中阻塞赋值(=)和非阻塞赋值(<=)区别

FPGA仿真中阻塞赋值和非阻塞赋值的区别 单独仿真小模块对但将小模块加入整个工程仿真不对就有可能是没有注意到仿真中阻塞赋值和非阻塞赋值的区别 目录 前言 一、简介 二、设计实例 三、仿真实例 1、仿真用非阻塞赋值 2、仿真用阻塞赋值 总结 前言 网上很多人介绍verilo…

LabVIEW轴角编码器自动检测

LabVIEW 开发轴角编码器自动检测系统&#xff0c;针对指控系统中高故障率的轴角编码器性能检测需求&#xff0c;通过模块化硬件架构与软件设计&#xff0c;实现编码器运转状态模拟、扭矩 / 转速实时监测、19 位并行编码采集译码、数据自动分析及报告生成等功能&#xff0c;解决…

MySQL数据库从0到1

目录 数据库概述 基本命令 查询命令 函数 表的操作 增删改数据和表结构 约束 事务 索引 视图 触发器 存储过程和函数 三范式 数据库概述 SQL语句的分类&#xff1a; DQL&#xff1a;查询语句&#xff0c;凡是select语句都是DQL。 DML&#xff1a;insert,delete,up…

WiFi万能钥匙鲲鹏服务器部署 TiDB 集群实战指南

作者&#xff1a; TiDBer_yangxi 原文来源&#xff1a; https://tidb.net/blog/15a234d0 一、环境准备 1. 硬件要求 服务器架构 &#xff1a;鲲鹏服务器&#xff08;ARM架构&#xff09;&#xff0c;TiDB 官方明确支持 ARM 架构服务器部署 推荐配置 &#xff08;生产环…

Vue 核心技术与实战智慧商城项目Day08-10

温馨提示&#xff1a;这个黑马的视频在b占可以找到&#xff0c;里面有完整的教学过程 然后这个项目有完整的代码&#xff0c;我已经上传了&#xff0c;如果审核成功大家就可以看了&#xff0c;但是需要审核多久我也不是很确定 1.项目演示 2. 项目收获 3. 创建项目 4. 调整初始化…

TCP/IP协议精华总结pdf分享

hi &#xff0c;大家好&#xff0c;应小伙伴们的要求&#xff0c;上次分享了个人的一些学习和职场经验&#xff0c;其中网络协议PDF文档是我之前学习协议的时候总结一些精华知识&#xff0c;网络属于基本功&#xff0c;是互联网必备知识&#xff0c;我深信掌握好核心20%知识&am…

⚡️ Linux grep 命令参数详解

⚡️ Linux grep 用法及参数详解 &#x1f4d8; 1. grep 简介 grep 是 Linux/Unix 系统中用于文本搜索的命令&#xff0c;其全称为 Global Regular Expression Print&#xff0c;意为全局正则表达式打印器。 它根据给定的 模式&#xff08;pattern&#xff09; 对文件或标准…

2025年第三届CCF·夜莺开源创新论坛通知

点击蓝字 关注我们 CCF Opensource Development Committee 01 大会简介 由中国计算机学会主办、CCF开源发展委员会及夜莺开源社区承办的第三届CCF夜莺开源创新论坛拟于2025年7月4日在北京召开。本次论坛以“AI 加速可观测”为主题&#xff0c;汇聚了开源夜莺核心开发团队&#…

GMDCMonitor企业版功能分享0602

企业版包含了拓扑中心、签退中心、知识库、通知渠道配置、平台自定义&#xff0c;这5个功能 1&#xff09;拓扑中心 拓扑中心绘制的时候需要注意2点&#xff1a; 1&#xff09;要先选择 “矩形区域” 或 “圆形区域” 来添加各个背景区域&#xff0c;同时录入区域尺寸&#x…

Warm-Flow发布1.7.3 端午节(设计器流和流程图大升级)

Warm-Flow发布1.7.3 端午节&#xff08;设计器流和流程图大升级&#xff09; 更新内容项目介绍功能思维导图演示地址官网Warm-Flow视频 更新内容 [feat] 新版流程图通过前端渲染[perf] 美化流程设计器ui[feat] 办理人权限处理器&#xff0c;新增办理人转换接口&#xff0c;比如…

【存储基础】SAN存储基础知识

文章目录 1. 什么是SAN存储&#xff1f;2. SAN存储组网架构3. SAN存储的主要协议SCSI光纤通道&#xff08;FC&#xff09;协议iSCSIFCoENVMe-oFIB 4. SAN存储的关键技术Thin Provision&#xff1a;LUN空间按需分配Tier&#xff1a;分级存储Cache&#xff1a;缓存机制QoS&#x…

2025年ESWA SCI1区TOP,改进成吉思汗鲨鱼算法MGKSO+肝癌疾病预测,深度解析+性能实测

1.摘要 本文针对肝癌&#xff08;HCC&#xff09;早期诊断难题&#xff0c;提出了一种基于改进成吉思汗鲨鱼优化算法&#xff08;MGKSO&#xff09;的计算机辅助诊断系统。由于HCC在早期症状不明显且涉及高维复杂数据&#xff0c;传统机器学习方法易受噪声和冗余特征干扰。为提…

Spark-TTS: AI语音合成的“变声大师“

嘿&#xff0c;各位AI爱好者&#xff01;还记得那些机器人般毫无感情的合成语音吗&#xff1f;或者那些只能完全模仿但无法创造的语音克隆&#xff1f;今天我要介绍的Spark-TTS模型&#xff0c;可能会让这些问题成为历史。想象一下&#xff0c;你可以让AI不仅说出任何文字&…

WEB3——简易NFT铸造平台之nft.storage

该平台目前已经不太支持免费试用&#xff0c;现在推荐Pinata平台&#xff0c;免费用1GB Pinata | Cryptos file storage 下面web3.storage也可以用&#xff0c;但是需要你有可以交易的外币卡 w3up console &#x1f9e0; 1. nft.storage 是什么&#xff1f; https://nft.stor…

一元函数积分

1. 不同名函数积分 2.三角函数有理式

6年“豹变”,vivo S30系列引领手机进入场景“体验定义”时代

出品 | 何玺 排版 | 叶媛 5月29日晚&#xff0c;备受用户期待的vivo S30系列如约而至。 相比前几代S系列产品&#xff0c;S30系列变化显著&#xff0c;堪称“豹变”。首先&#xff0c;其产品打造思路发生了质变&#xff0c;产品体验更好&#xff0c;综合竞争力更为强。其次&a…

linux驱动开发(1)-内核模块

内核模块 模块最大的好处是可以动态扩展应用程序的功能而无须重新编译链接生成新的应用程序镜像&#xff0c;在微软的Windows系统上动态链接库DLL&#xff08;Dynamic Link Library&#xff09;&#xff0c;Linux系统上的共享库so&#xff08;shared object&#xff09;文件的…

AI产品风向标:从「工具属性」到「认知引擎」的架构跃迁​

近年来&#xff0c;人工智能正在改变法律行业的游戏规则。从最初的“工具属性”——帮律师干些重复的杂活儿&#xff0c;到如今逐渐变身为“认知引擎”——能够理解法律逻辑、分析案例&#xff0c;法律AI产品正在迎来一场华丽的转身。这篇文章将带你一探究竟&#xff0c;看看这…